参考书为 《MATLAB Programming for Engineers》第二版
一、数组的创建
-
一行内的单个数值用空格或者逗号隔开,行与行之间用分号或者另起一行来区分。
-
数组的单个元素 可以是数值或者 表达式。
-
创建一个数组时,不是每一个元素都必须定义。如果要定义一个特殊的数组,或只
有一个或几个元素没有定义,那么之前的那些元素将会自动创建,并初始化为0。比如:
-
注意分号的使用,可以禁止变量值在命令窗口的显示,也可以用来检测赋值是否正确。
-
克隆运算符的使用:
(1) 用法:first:incr:last(第一值:步增量:最终值)
(2) 转置运算符——’ -
内置函数初始化数组
-
Input 从键盘接收数值来初始化变量:如果输入数值,则直接键入。如果是数组,则必须加上[]。如果input 函数中有字符‘s’ 作为第二个参数,意味着输入的数据为字符串。
-
多维数组的创建,多维数组在内存中的存储是以列顺序分配元素的,内存先分配第一列元素,然后第二列、第三列直到最后。所以多维数组同样可以用单一下标来访问。一般情况下不使用该特性,容易带来麻烦。
-
子数组的引用:数组名后跟 (),括号内是【要引用的元素的下标集合 ,用空格分隔开】。
克隆运算符通过下标选择子数组:
-
end 函数:返回下标的最大值。 array(end)将会引用array 的最后一个元素。
-
子数组在左边的赋值引用:
第一行的1、4元素由20 21替换,第二行的1、4元素由22 23替换。
-
用标量给子数组赋值
第一行的第一、二个元素和第二行的一、二元素被赋值为1。 -
预先定义的特殊变量
这些特殊变量可以被赋新值,但应尽量避免改写。
-
改变默认输出格式:format 命令
-
disp 函数将值显示在命令窗口
-
fprintf 函数:fprintf(format,data),只能显示复数的实部
-
save 命令保存工作区的数据到硬盘文件 ,如果filename 后面没有变量,则将工作区的所有内容保存。
-
数组运算和矩阵运算
二、常见函数:
log 的用法:
log()默认是以e为底;log10()表示以10为底的对数。同理log2()表示以2为底的对数。
三、画图:
- grid 命令——grid on 开启网格线;grid off 关闭网格线
- 同一坐标系内打印多个函数:
- Plot 函数的属性字符串
- Legend 命令制作图例
pos 指定图例的位置
legend off 命令可以去除多余的图例
四、关系运算符:
- 关系运算符 也可以用于数组与标量比较
- 用于两个具有相同大小的数组比较
- 关系运算在所有数学运算之后进行,优先级最低
- round off 错误:近似相等并不使严格意义上的相等,MATLAB 中会返回0(不相等)。
五、逻辑函数:
六、循环结构:
If结构:
- if 结构必须含有一个if 语句和一个end 语句。中间可以有任意个elseif 语句或者一个else 语句
- end 语句和最近的if 语句匹配
try/catch 结构:运行try 语句块,如果不出错则跳过catch 语句块;如果出错则终止try语句块转而执行catch语句块。
七、画图特性:
-
在同一坐标系内画出多个图像:
hold on 命令,执行后可以绘制第二个图像在同一个坐标系内,hold off 可以恢复默认设置 。 -
figure 函数选择当前窗口:figure(n)
执行后,图n将变成当前图像 -
gcf 函数返回当前图像数
-
subplot 命令创建子图像:subplot(m,n,p)
创建m*n 个子图像,按m 行n 列排列,并选择图像p 接收当前所有画图命令。
如果subplot 命令创建的新坐标系与原来的坐标系相冲突,那么原来的坐标系将会被自
动删除。 -
设置画线的属性
命令格式
-
文字字符串的高级控制:
文本的字体通过stream modifiers 修改
-
极坐标图像的绘制:
polar 函数——
八、MATALAB取整函数
Matlab 取整函数有: fix, floor, ceil, round
fix 朝零方向取整,如fix(-1.3)=-1; fix(1.3)=1;
floor 取比它小的整数,即朝负无穷方向取整,如floor(-1.3)=-2; floor(1.3)=1;floor(-1.8)=-2,floor(1.8)=1
ceil 与floor相反,取比它大的最小整数,即朝正无穷方向取整,如ceil(-1.3)=-1; ceil(1.3)=2;ceil(-1.8)=-1,ceil(1.8)=2
round 四舍五入到最近的整数,如round(-1.3)=-1;round(-1.52)=-2;round(1.3)=1;round(1.52)=2。
九、归一化(normalization):
归一化是数据标准化的一种,就是将数据按比例缩放,全部映射到(0,1)区间内。
当多个指标的量纲和数量级差别较大时,需要进行数据同趋化处理和无量纲化处理。数量级差别较大的两个指标,其作用力也不同,一般会突出数值较高的指标的作用力,同趋化处理就是将作用力同趋化。无量纲化处理主要是为了解决数据之间的可比性,缩小差别。具体可参考 https://blog.csdn.net/pipisorry/article/details/52247379
该规范化算法中ymin、ymax 参数可以自行设定,比如0和1。默认是-1和1。具体可以参考这个博客
https://blog.csdn.net/u013045749/article/details/40480133
mapminmax 的用法主要有以下5种:
具体可以通过命令help mapminmax 查看文档帮助
十、逻辑数组的屏蔽属性:
屏蔽是指一个数组,它从另一个数组选择所需的元素参与运算。指定的运算只在选择的元素上执行,而不执行原有的元素。