概述:
最近在用matlab的官方文档自学 Matlab,按照文档总结了 matlab 的一些语法和常见用法
参考文献:
http://uk.mathworks.com/help/pdf_doc/matlab/getstart.pdf
------------------------------------------------------------------------------------------
基础知识
- matlab中,用 % 来表示注释,用
%{
.....
%}
表示多行注释
- matlab中,分号的意义:如果没有分号,表示该数据的值会在控制台输出;否则,数据的值不会输出
- 如果我们不指定输出变量,matlab用answer的简写,ans,来储存运算结果(如果没有分号,还要输出)
eg:
说明:
- b有分号,故而b不输出;
- cos(a)没有指定输出变量,故而保存在ans中以后,再输出
- 可以用中括号来创建数组,数组之间的元素,用空格或逗号隔开
eg:
- 可用分号隔开数组中的每行,这时变为二维数组
- 可用zeros、ones、rand来建立零矩阵、单位矩阵、随机数矩阵
- 矩阵名加上实数,或者将矩阵名作为函数参数,都是对矩阵的每一个元素进行对应操作
- 用(')来表示矩阵的转置矩阵,用inv()函数来求矩阵的逆矩阵
- 用(*)可表示矩阵乘法,矩阵与逆矩阵相乘为单位矩阵
- matlab用将数据储存为float型,有时会导致数组存储存在误差,为了避免误差,可用【format long】将其转化为【long】型,同时也可以用【format short】得到更简练的输出结果
- 可用.*实现两个矩阵之间,每个元素对应位置相乘(*实现的是线性代数中的矩阵乘法,.*才是对应元素一一相乘)
- 可用.*实现单个矩阵,每个元素进行相应的幂运算(乘方运算)
- 可用(,)进行水平方向的矩阵连接,用(;)进行竖直方向上的矩阵连接
- matlab可表示复数,复数的虚部后的字母可用 i 或者 j,但在输出时,输出结果总是用 i
- 可以用 magic(n),生成一个 n 阶矩阵,矩阵元素按照 n 阶幻方排列
- 2种方法引用矩阵A 中的元素:
A(4,2) 表示第4行第2列的元素,结果是14A(8) 表示第8个元素,结果也是14
注:
matlab采用列优先存储,故而在数元素的序号时,应该采用(16,5,9,4,2,11,7,14....)这样的顺序,第8个自然为14
类似C++中的数组,在引用矩阵中的元素时,行号(以及列号、序号)都不可越界,否则会输出错误提示
另外,不同于C++,matlab中的下标(行号、列号、序号)并不是从0开始,而是从1开始
- 引用矩阵元素后,可直接对其赋值
- 如果想要引用多个元素,可用 (起始行/列号:终止行/列号)来指定范围;
- 在没有冒号时,仅有数字时,说明仅指定这一行/列
- 在既没有冒号,又没有数字时,即,省略了维度,说明表示另一维度的整一行/整一列
- 在给数组元素赋值时,可以指定起止元素和步长(形式: start:step:end),在未指定步长时,默认步长为1