MATLAB 基础语法
MATLAB 基础语法
started at 2026/2/11
matlab像是简单版的C语言
一、矩阵和数组
1.数组创建
使用逗号或空格分隔各个元素,如果要创建包含多行的矩阵,可以使用分割各行,也可以直接换行。
a=[1 2 3 4]
b=[1 3 5;2 4 6;7 8 10]
//较大的矩阵可以分成若干行输入,以回车键代替分号。
c=[1 3 5
2 4 6
7 8 10]
矩阵的元素可以是matlab表达式,例如:
X=[-1.3 sqrt(3) (1+2+3)*4/5]
//结果为 x= -1.300 1.732 4.800
可以像数组一样用下标取出元素:
B=X(3) //B=4.8000
矩阵拼接:
A=[1,2,3;4,5,6;7,8,9]
A=[A;[10,11,12]]
/*
结果:A=1 2 3
4 5 6
7 8 9
10 11 12
*/
可以使用冒号从大矩阵中提取小矩阵
B=A(1:3,:)
/*
结果:B=1 2 3
4 5 6
7 8 9
*/
2.矩阵运算
矩阵转置
A=[ 1,2,3;4,5,6;7,8,9 ]
B=A'
//如果Z是一个复矩阵,那么Z'就是它的复共轭转置
矩阵加减乘
一个标量和矩阵相乘相当于该标量乘矩阵中的所有元素
C=A+B
C=A*B
C=2*A*B
矩阵除法
A\B 相当于 inv(A)*b
A/B 相当于 A*inv(B)
矩阵的乘方
标量:数值×单位
矩阵乘方的表示法是 A^N 。
如果 N 是一个标量,A 是一个方阵,那么 A^N 表示 A 矩阵的 N 次方。如果N 是大于1的整数,则 A^ N 表示 A 矩阵重复相乘 N -1 次。
3.数组运算
数组的乘法
数组的乘法用 .* 表示。如果A 与B 具有相同的维数,那么A.*B 表示这样 一个数组,其元素分别是A 与B 两数组对应元素之积。
X=[1 2 3];
Y=[4 5 6];
Z=X.*Y //Z=4 10 18
Z=X.\Y //Z= 4.0000 2.5000 2.0000
Z=X./Y //Z=0.2500 0.4000 0.5000
数组的乘方
符号 .^ 表示数组的乘方。
Z=X.^Y //Z=1 32 729
Z=X.^2 //Z=1 4 9
二、语句与变量
变量的正常赋值方式是 变量=表达式,可以简写为 表达式
1900/81 //结果:ans=23.4568
a=1900/81 //结果:a=23.4568
一个语句一般以回车键表示终止。
如果语句的最后一个字符是分号 “;”,则执行后的结果将不被显示,但语句照常完成。若最后一个字 符为逗号“,”或无任何字符,则结果将进行显示。
如果表达式很复杂,一行写不完,可以使用两重或者多重省略号“....”后紧跟回车键表明下一行是该行的续行。例如:
S=1-1/2+1/3_1/4....
+1/5;
- 注意:
- matlab的变量和函数,名字第一个字符必须是字母,后跟任意个字母或数字,但系统只计前19个字符。
- matlab对字体很敏感,一般都区分大小写,所以 a 和 A 是两个不同的变量。所有函数名必须小写,inv(A) 表示求矩阵A的逆矩阵,但 INV(A) 将代表一个未定义的函数。
- pi 表示 $\pi $
- inf 表示无穷 \(\infty\)
- NaN 是一个与 inf 有关的而又有不同性质的数,它表示不定数“NOT A NUMBER”
- 键入whos ,可以显示当前变量的详细信息
三、复数和复数矩阵
matlab允许使用复数,但要输入复数必须要先建立一个复数基。可以这样写:
i=sqrt(-1)
j=sqrt(-1)
建立完复数之后,就可以使用这样的方式输入:
Z=3+4i
复数矩阵,有两种表示方法:
A=[1 2;3 4]+i*[5 6;7 8]
B=[1+5*i 2+6*i;3+7*i 4+8*i]
四、输入输出
输出格式
format short
format long
help 工具包
help inv
清除状态空间
使用clear命令
退出和保存工作空间
退出:quit/exit
保存工作空间
save 文件名.mat
五、向量
向量的生成以及冒号在Matlab中的应用
使用向量可以很容易产生一个表格
Y=10:-2:0 //Y=[10 8 6 4 2 0]
//起点:步长:终点
A=[1 2 3;4 5 6;7 8 9]
A(2:3,3)//ans=6 9,取第二行、第三行的第三个数
A(:,2)//ans=2 5 8,单独使用冒号表示所有行or列
A(2:3,:)//ans=4 5 6; 7 8 9 ,
常用矩阵指令
eye(n,m) :生成 n×m 的单位矩阵
eye(2,3) //ans=1 0 0;0 1 0
eye(3,3) //ans=1 0 0;0 1 0;0 0 1
zeros(n,m):生成 n×m 的零矩阵
zeros(3,3)//ans=0 0 0;0 0 0;0 0 0
ones(n,m):生成 n×m 的1矩阵
ones(2,3)//ans=1 1 1;1 1 1
diag([a1,a2,...,an]):生成以 a1,a2,...,an为对角元的对角矩阵
diag([1,2,3])//ans=1 0 0;0 2 0;0 0 3
size(A):检查矩阵A的维数
A=[1 2 3;4 5 6]
size(A)//ans=2 3
length(A):检查矩阵A的长度
A=[1 2 3 4 5 6]
length(A)//ans=6
六、信号处理与多项式
在Matlab中,多项式是按降幂顺序排列的稀疏组成的行向量表示的。

信号处理需要使用的函数

绘图


浙公网安备 33010602011771号