一、初识Matlab

MATLAB 是 MATrix 和 LABoratory 两个词的组合,意为矩阵工厂(矩阵实验室)。

界面

比较熟悉的界面风格~喜欢。

可以把当前文件夹换成工作目录。也就是存放脚本的地方。

命令:

**clc()**用于清除命令行的命令。

**clear()**用于清除工作区的变量。

二、Matlab基础数学运算

2.1 MATLAB的变量与注释

可不声明变量,和python一样。(或者说,python和他一样……)

变量名由一个字母引导,后面可以跟字母、数字、下划线等,且区分大小写。不能以数字、下划线开头~,区分大小写。

注释用%。也可用快捷键“ctrl+R”进行注释,

取消多行注释,则在选中的基础上,快捷键“ctrl+T”。

2.2 MATLAB基本语句

2.2.1直接赋值语句

格式:赋值变量=赋值表达式

分号

若赋值表达式后无分号,则为变量赋值并显示结果

若赋值表达式后有分号。则为变量赋值不显示结果。

省略赋值变量和等号

若省略赋值变量和等号,则结果会赋给保留变量ans。

如下,

>> a=1+3*2 %赋值表达式后无分号。则为变量赋值并显示结果a =7>> a=1+3*2; %赋值表达式后有分号。则为变量赋值不显示结果
>> 1+3*2 %省略赋值变量和等号。则结果会赋给保留变量ansans =7>> 1+3*2; %(带了分号)省略赋值变量和等号。则结果会赋给保留变量ans
>>

Matlab的中括号是用来放矩阵的

Matlab是弧度制

>> sin(30)ans =-0.9880>> sin(pi/6)ans =0.5000>> pians =3.1416>>

**Log**函数(内置与非内置计算)

>> log2(5) %以2为底5的对数ans =2.3219>> log10(5) %以10为底5的对数ans =0.6990>> log(5) %以e为底5的对数ans =1.6094>>

发现matlab没有log以其他数为底的内置函数

解决办法:

换底公式换算
Log5x=log10x/log105Log_5x=log_{10}x/log_{10}5 Log5​x=log10​x/log10​5

>> log(5)/log(5)ans =1>> log(2)/log(5)ans =0.4307>>

利用内置反函数:finverse()函数

>> y=5^2y =25>> f=finverse(y)
未定义与 'double' 类型的输入参数相对应的函数 'finverse'。>>

数据类型怎么转换?

问题未解决……

2.2.2函数调用语句(自定义函数)

自定义函数

可直接在定义:function y=fun2(x)

进行自定义函数。将elseiftest函数改造如下,

function y=fun1(x)
%x=-2;
if x>=1y=10;
elseif x>-1&&x<1y=0;
elsey=-10;
end

注意:使用函数的时候,要用文件名,跟y=fun1没关系。

2.3矩阵运算

2.3.1 矩阵生成

① 直接输入矩阵

对于较小的简单的矩阵,可以从键盘上直接输入矩阵元素,输入时遵循下面的几个原则:

a) 矩阵每一行的元素必须用空格或逗号分开;

b) 在矩阵中,采用分号或回车表明每一行的结束;

c) 整个输入矩阵必须包含在方括号中。

方式一:

>> A=[1,2,3;4,5,6;7,8,9]A =1     2     34     5     67     8     9>>

方式二:

>> A=[1 2 3
2 3 4
5 6 7]A =1     2     32     3     45     6     7>>

矩阵的基本运算

>> A=[1 2 3
2 3 4
5 6 7]A =1     2     32     3     45     6     7>> B=[2,3,4;5,6,7;8,9,10]B =2     3     45     6     78     9    10>> A+Bans =3     5     77     9    1113    15    17>> A-Bans =-1    -1    -1-3    -3    -3-3    -3    -3>> A*Bans =36    42    4851    60    6996   114   132>> A' %转置ans =1     2     52     3     63     4     7>>
由内置函数生成矩阵

在MATLAB中,内置了一些生成矩阵的函数,如:eye(n)生成n维的单位矩阵,ones(n)生成n 维的全1矩阵,zeros(n)生成n维的全0矩阵,另外可以将小矩阵联接起来生成一个较大的矩阵。

>> eye(5) %)生成n维的单位矩阵ans =1     0     0     0     00     1     0     0     00     0     1     0     00     0     0     1     00     0     0     0     1>> ones(4) %)生成n维的全1矩阵ans =1     1     1     11     1     1     11     1     1     11     1     1     1>> zeros(5) %)生成n维的全0矩阵ans =0     0     0     0     00     0     0     0     00     0     0     0     00     0     0     0     00     0     0     0     0>>

除了方阵,还可以生成n*m的矩阵

>> ones(3,4)ans =1     1     1     11     1     1     11     1     1     1>> zeros(5,6)ans =0     0     0     0     0     00     0     0     0     0     00     0     0     0     0     00     0     0     0     0     00     0     0     0     0     0>> eye(6,8)ans =1     0     0     0     0     0     0     00     1     0     0     0     0     0     00     0     1     0     0     0     0     00     0     0     1     0     0     0     00     0     0     0     1     0     0     00     0     0     0     0     1     0     0>>
基本运算

在MATLAB中,矩阵的计算非常方面,系统会自动判断矩阵的类型和维度。求转置矩阵用 ‘ ,如求A的转置:>> A’;求逆矩阵用函数inv(),如求 A 的逆矩阵:>> inv(A) ;开平方用函数 sqrt()。

>> A=[1,2,3;2,2,5;3,5,1]A =1     2     32     2     53     5     1>> inv(A)ans =-1.5333    0.8667    0.26670.8667   -0.5333    0.06670.2667    0.0667   -0.1333>> sqrt(A) %开平方ans =1.0000    1.4142    1.73211.4142    1.4142    2.23611.7321    2.2361    1.0000>> A'ans =1     2     32     2     53     5     1>>
生成大矩阵

可以将小矩阵联接起来生成一个较大的矩阵。

>> AA =1     2     32     2     53     5     1>> B=[A, A+5, A+10; A-10, A-5, A]B =1     2     3     6     7     8    11    12    132     2     5     7     7    10    12    12    153     5     1     8    10     6    13    15    11-9    -8    -7    -4    -3    -2     1     2     3-8    -8    -5    -3    -3     0     2     2     5-7    -5    -9    -2     0    -4     3     5     1>>

2.4 循环控制语句

for和while

用for和while来计算1—100的数之和。

For

s=0;          %初始化
for k=1:1:100 %第一个冒号之前的1是k的初始值,两个冒号之间的1是k增加的步长,最后一个冒号之后的100是结束值。s=s+k;
end
s

命令行窗口输出

>> for_Tests =5050>>

While

s=0; k=1;       %初始值
while(k<=100)   %当 k=100 是结束循环。s=s+k;k=k+1;
end
s

命令行窗口输出

>> whiletests =5050>>

条件转移语句elseif

x=-2;y=0;
if x>=1y=10;
elseif x>-1&&x<1y=0;
elsey=-10;
end
y

开关语句switch

x=0;
switch xcase 1y=1case 2y=-1otherwisey=9999
end

输出

>> switchtesty =9999>>

三、基于MATLAB平台的数字图像认知

在 MATLAB 的安装目录下可以找到 MATLAB 自带的图片资源,以 MATLAB 2016b 版本为例,可以在 MATLAB\R2016b\toolbox\images\imdata 目录下找到图片资源。

3.1照片读取imread()函数

A=imread('cameraman.tif'); %可以在工作区看到A是一个 256*256的uint8格式数组
A
B=imread('yellowlily.jpg'); %可以在工作区看到B是一个1632*1224*3的uint8格式数组
figure(1),imshow(A)%打开图形窗口1,显示A图片。
figure(2),imshow(B) %打开图形窗口2,显示B图片。

图像A的矩阵行列为256256,因为其大小即256256

因为是灰度,所以没有标识的整型uint8,且每一个值的范围为0~255。

3.2图像灰度反转

图像读取进来为矩阵。

矩阵可以进行计算。

255-A可得该图像的灰度图的反转

若不指定显示窗口,会输出figure1,覆盖原有的图像

matlab

A=imread('cameraman.tif'); %可以在工作区看到A是一个 256*256的uint8格式数组
figure(1),imshow(A)%打开图形窗口1,显示A图片。%灰度反转
C=255-A;
imshow(C);%也会显示在图形窗口1,覆盖掉A

3.3彩色图像

是三维矩阵。R、G、B三个通道去显示。

读取彩色tif默认为灰度图。

四、遇到过的问题

4.1 字体改为Consolas后编辑器注释中文乱码问题

安装完毕后,越写越觉得Matlab的字体真不咋地,于是乎,将字体改为心心爱爱的Consolas字体,然鹅,发现注释中的中文出现了方框问号的乱码问题……。

原因:

Matlab中缺少Consolas字体,导致其显示不正确。

解决:下载Consolas-with-Yahei-master.zip字体(4个),将其放在matlab字体路径下即可。

Matlab字体路径:D:\Matlab\sys\java\jre\win64\jre\lib\fonts

下载链接:https://pan.baidu.com/s/1-Ozh509csXHgNSMoWGRteg

提取码:vd8a

为什么选择这一种字体呢

Consolas 字体是微软专为程序员开发的一种字体,这一字体的特性是所有字母、数字与符号均能非常容易辨认!而且所有字符都具有相同的宽度,让编程人员看着更舒适。但是不支持中文。

微软雅黑是个人电脑上可以显示的最清晰的中文字体之一,全面支持ClearType技术。

这种字体是一种 Consolas微软雅黑 的混合字体,这样既保证了代码的显示效果,而且也兼容了中文显示。

4.2 ASV文件

在写代码的时候,无意间发现,哎~?创建的脚本旁边还有有个同名的兄弟文件,后缀为CSV。很有趣,

asv就是autosave的意思,.asv文件的内容和相应的.m文件内容一样,用记事本和matlab都能打开它。它可以作为*.m文件的“备份”。

可以在预设中通过设置取消自动备份功能:编辑器/调试器→备份文件。把勾选去掉就行了。

4.3反函数finverse求log52

>> y=5^2y =25>> f=finverse(y)
未定义与 'double' 类型的输入参数相对应的函数 'finverse'。>>

初识Matlab以及Matlab一般性教程相关推荐

  1. 龙格库塔法解微分方程组的matlab程序,MATLAB实例源码教程:龙格库塔法求解微分方程组源代码实例.doc...

    MATLAB实例源码教程:龙格库塔法求解微分方程组源代码实例.doc MATLAB实例源码教程龙格库塔法求解微分方程组源代码实例题目用经典 Runge-Kutta方法求下列一阶微分方程组的近似解y1 ...

  2. matlab基础与实例教程,MATLAB基础与实例教程

    系统全面,实例丰富 考虑到Matlab进行仿真和运算分析时的基础知识和实践操作,讲解从基础的变量.函数.数据类型等入手,涉及到数学分析.图形可视化.Simulink仿真.文件读写等,全面地介绍了Mat ...

  3. Matlab保留工作区变量教程

    Matlab保留工作区变量教程 一 工作区右击 新建 建立变量(这样只能复制数值,字符串教程在下面) 二 双击 '值'对应的0,打开变量 三 复制xlsx(只能是数值)内容到下面 在xlsx中可以一列 ...

  4. Matlab R2019b[破]安装教程

    ----Matlab R2019b[破]安装教程 1.解压matlab压缩包获得如下文件夹 2.打开R2019b_win64文件夹,双击"setup.exe"文件进入软件安装界面 ...

  5. matlab输入多项式 教程,MATLAB多项式 - Matlab教程

    MATLAB多项式 - Matlab教程 MATLAB指多项式行向量系数降幂排序.例如,方程 P(x) = x4 + 7x3 - 5x + 9 可以表示为: p = [1 7 0 -5 9]; 计算多 ...

  6. matlab基础及应用教程,初学者宝典—Matlab基础及其应用教程 PDF 文字版[2M]

    内容简介: <高等教育计算机学科"应用型"规划教材:MATLAB基础及其应用教程>由基础知识和应用两大部分组成.基础知识部分详细介绍了MATLAB基础准备与入门.基本的 ...

  7. Matlab 标定工具箱使用教程

    Matlab标定工具箱使用教程 这个教程将带你完整地利用20到25张平面棋盘格图像进行相机标定. 这个教程将让你学会如何使用所有工具箱的特征:载入图像.提取图像角点.运行标定引擎.显示结果.控制精度 ...

  8. vb调用matlab工具箱,Matlab与VB集成 - 关于VB的经验之谈 - VB爱好者乐园(VBGood) - 关于VB的经验,电子教程,代码,控件,论坛,博客,微博等....

    工业生产中经常遇到复杂的数据信息处理问题,需要大运算量的矩阵计算及对分析结果进行实时.直观的图形化显示.Matlab是集数值分析.矩阵运算.信号处理和图形显示于一体的高性能数学软件,将其强大的计算功能 ...

  9. 炉温曲线系统MATLAB仿真,MATLAB作业——工业炉温控制系统为例教程.doc

    控制工程基础大作业 MATLAB软件应用 2016年秋季学期 专业名称:机械设计制造及其自动化专业 班 级: 姓 名: Sun Light Tomorrow 学 号: 授课教师: 成 绩: 一.教学目 ...

  10. matlab转向语句,MATLAB控制语句

    MATLAB控制语句 目的:研究控制结构(用于,是否,切换,中断,继续,输入/输出功能,读取和存储数据). 如果:如果计算逻辑表达式,并根据表达式的值执行一组语句. If语句的语法 例子 输出: Sw ...

最新文章

  1. args, sys.argv的区别
  2. 服务器otter部署-实现MySql数据同步
  3. iOS如何转换十三位的时间戳
  4. JS三教九流系列-require.js-网站模块化开发
  5. [云炬创业学笔记]第一章创业是什么测试11
  6. MyBatis源码分析-2-基础支持层-反射模块-TypeParameterResolver/ObjectFactory
  7. android wtf_WTF连接池
  8. 【es】es 写入流程
  9. matlab画爱心代码分享
  10. Unity的IOS接入新浪微博
  11. Netty工作笔记0060---Tcp长连接和短连接_Http长连接和短连接_UDP长连接和短连接
  12. 程序员的职业规划_大学毕业进入职场,程序员如何进行合理的互联网职业规划?...
  13. mysql去空格trim_mysql去空格函数trim
  14. 百度网盘永久分享链接-注册电气工程师(注电)历年考试真题PDF, Word版资料(含答案), 相关视频资料
  15. 程序员必备的远程控制软件,ToDesk为什么最合适?
  16. 各种数据类型的取值范围
  17. MFC中画出圆形按钮,告别方形普通按钮
  18. 爬虫获取微博首页热搜
  19. android中评论的删除不了,微信朋友圈可以删评论了,但尴尬的是…
  20. [windows]win10家庭版切换到管理员账户

热门文章

  1. 微信小程序教学管理系统+后台管理系统
  2. 知识付费对接微信公众号订阅消息
  3. 送书 | 教你下载B站指定视频
  4. 家乡菜之回锅茄子_wizard_新浪博客
  5. python 等值线_绘图系列(1):利用matplotlib绘制等值线图
  6. 如何修改win7上的mac地址
  7. endcap和welltap_ICC布局规划
  8. Idea新建项目名后出现中括号别名
  9. GlassFish主配置文件domain.xml介绍
  10. 无限卡,无限流量,无限滚动!