参考1:https://www.bilibili.com/video/BV19J411W7Ta?p=29
参考2:https://blog.csdn.net/njuese/article/details/104468474?spm=1001.2014.3001.5501
参考3:https://blog.csdn.net/weixin_44378835/article/details/104499450
1.MATLAB基础知识
1.1 MATLAB系统环境
1.1.1Matlab主窗口
功能区:提供三个选项卡(主页,绘图,应用程序),各自有不同的工具可供使用。
快速访问工具栏:包含一些常用按钮
当前文件夹工具栏:用于实现当前文件夹的操作
1.1.2命令行窗口
命令行窗口用于输入命令并显示命令的执行结果。在命令提示符 > > >> >>后输入命令并按下回车键,Matlab就会解释执行输入的命令并显示结果
1.1.3当前文件夹窗口
1.1.4 工作区窗口
是Matlab用于存储各种变量和结果的空间,可用于变量的显示和操作。
1.2 MATLAB的搜索路径
1.2.1用户在命令行窗口输入一条命令后,MATLAB将按照一定顺序依次寻找命令对象。
1.2.2设置文件搜索路径
用path命令设置文件搜索路径:>>path(path,’d:\work’)
用对话框设置文件搜索路径
2. MATLAB数值数据
2.1数值数据类型的分类
class函数可以得到参数的数据类型
>>class(4)
ans=double
2.1.1整型
2.1.2浮点型:single函数将其他类型转为单精度;double函数将其他类型转为双精度
2.1.3复数型: real() %求复数的实部 ; imag() %求复数的虚部
2.2常用数学函数
2.2.1函数的调用格式: 函数名(函数自变量的值)
>>A=[1,2,3;4,5,6];
>>sin(A)
ans =
0.8415 0.9093 0.1411
-0.7568 -0.9589 -0.2794
2.2.2常用函数的应用(sin,sind;abs;取整)
三角函数:区别sin与sind(以角度为单位 d)
abs函数:求实数的绝对值、复数的模、字符串的ASC||码值
用于取整的函数:
round: 四舍五入;ceil: 向上取整 ; floor: 向下取整 ; fix:舍去小数取整
rem(m,n) %求m/n的余数
3.变量及其操作
3.1 变量与赋值语句
变量本质上讲是内存单元的一个抽象
在Matlab中,变量名是以字母开头,后接字母、数字或下划线的字母序列,最多63个字符。
变量名区分大小写
标准函数名以及命令名必须用小写字母
赋值语句两种格式
变量=表达式 % 变量结果会在命令行中显示出来
变量=表达式; % 变量结果不会在命令行中显示出来
3.2 预定义变量
由系统本身定义的变量
3.3变量的管理
3.3.1变量的删除和修改(who,whos)
在工作区选择变量右击即可进行删除和修改
who命令和whos命令:
who命令只显示已存在变量的名称。而whos显示信息更多
3.3.2内存变量文件(save,load)
用于保存Matlab工作区变量的文件叫做内存变量文件,其扩展名为.mat,也叫MAT文件,是一种标准的二进制格式文件。
save命令:创建内存变量文件
load命令:载入内存变量文件
save mydata a x % 将a x保存在mydata.mat文件中
load mydata % 载入mydata.mat中的变量
4. MATLAB矩阵表示
4.1 矩阵的建立
(1)直接输入法:中括号,同一行各元素之间用逗号隔开,不同行之间用分号隔开
(2)利用已建立好的矩阵建立更大矩阵
4.2冒号表达式
4.2.1用冒号产生行向量t
e1:e2:e3 产生行向量
e1为初始值,e2为步长(省略,则默认为1),e3为终止值
4.2.2用linspace函数产生行向量x
linspace(a,b,n)
a是第一个元素,b是最后一个元素,n是元素总数(省略时默认为100)
4.3结构矩阵和单元矩阵
4.3.1结构矩阵
结构矩阵元素.成员名=表达式
>>a(1).x1=10;a(1).x2=’qwe’;
>>a(2).x1=11;a(2).x2=’asd’;
4.3.2单元矩阵:直接输入,只是单元矩阵元素用大括号括起来。
>>b={10,’qwe’;11,’azxs’}
5. 矩阵元素的引用
5.1矩阵元素的引用方式(sub2ind,ind2sub)
5.1.1通过下标引用 A(3,2)
5.1.2通过序号引用。在MATLAB中,矩阵元素按列存储,矩阵元素的序号就是矩阵元素在内存中的排列顺序。A(3)
序号和下标可以利用sub2ind和ind2sub函数相互转换
D=sub2ind(S,I,J),D表示序号,S表示行数和列数组成的向量,I是转换矩阵元素的行下标,J是列下标
>>A=[1:3;4:6]
>>D=sub2ind(size(A),[1,2;2,2],[1,1;3,2])
D=
1 2
6 4
[I,J]=ind2sub(S,D),S为行数和列数组成的向量,D为序号,I、J分别为行、列下标
5.2利用冒号表达式获得子矩阵(end)
A(i,:) 第i行的全部元素
A(:,j) 第j列的全部元素
A(i:i+m;k:k+m) 第i-i+m行内且在第k-k+m列中的全部元素
A(2:3,1:2:5) 第2、3行的第1、3、5列元素
end运算符表示某一维的末尾元素下标
5.3利用空矩阵删除矩阵中的元素
>>A(:,[2,4])=[]
5.4改变矩阵的形状
reshape(A,m,n):在矩阵总元素和顺序保持不变的前提下,将矩阵A重新排成m行n列的二维矩阵
A(:)将矩阵A的每一列元素堆叠起来成为一个列向量。
6. MATLAB基本运算
6.1算术运算
6.1.1基本算术运算+,-,,^(乘方),/(右除),\(左除)
加减:要求矩阵同型,标量也可跟矩阵的每一个元素进行加减
乘法:A的列数等于B的行数
除法:A为非奇异矩阵,B/A等效于Binv(A),B\A等效于inv(A) B
乘方:A^x,要求A为矩阵,x为标量
6.1.2点运算:. ,./ ,.
是指对应元素进行相关运算,要求两矩阵同型。
6.2关系运算
< ,<=,>, >=, ==(等于), ~=(不等于)
关系成立,结果为1;不成立,为0
当参与比较的两是两个同型矩阵时,是对相同位置的元素按标量关系运算规则逐个进行,最终结果是一个与原矩阵同型的矩阵,它的元素由0、1组成。
6.3 逻辑运算 (&,|,~)
6.4运算优先级
算术运算>关系运算>逻辑运算,但逻辑非运算时单目运算,它比双目运算优先级高
7. 字符串处理
7.1字符串的表示
7.1.1字符串是用单引号括起来的字符序列
>>xm=’qwertyyy’
>>xm(1:3)
ans=qwe
7.1.2若字符串中的字符含有单引号,则该单引号字符要用两个单引号表示。
>>’I’’m a student
7.1.3可建立多行字符串,形成字符串矩阵
>>ch=[‘abcdef’:’123456’];
>>ch(2:3)
ans=3
要求各行字符数要相等(列数相同)。如果不等,就要用空格调节各行长度,使之数目相等。
7.2字符串的操作(strcmp;findstr;strrep)
7.2.1字符串的执行: eval(s)
7.2.2字符串与数值之间的转换:
abs和double函数都可以获取字符串矩阵所对应的ASCII码数值矩阵,char函数可以把ASCII码数值矩阵转换为字符串矩阵。
7.2.3字符串的比较:可以利用关系运算符或者字符串比较函数。
函数strcmp(s1,s2)用来比较字符串s1和s2是否相等,相等则返回1,否则返回0;
函数strncmp(s1,s2,n)用来比较字符串s1和s2前n个字符是否相等,相等则返回1,否则返回0;
函数strcmpi(s1,s2)在忽略字母大小写的前提下,比较字符串s1和s2是否相等,相等则返回1,否则返回0;
函数strncmpi(s1,s2,n) 在忽略字母大小写的前提下,比较字符串s1和s2前n个字符是否相等,相等则返回1,否则返回0。
7.2.4字符串的查找与替换
findstr(s1,s2)返回短字符串在长字符串中的开始位置(s1,s2可互换)
strrep(s1,s2,s3)将字符串s1中的所有子字符串s2替换为字符串s3