Loading

Loading

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;
  • 注意:
    1. matlab的变量和函数,名字第一个字符必须是字母,后跟任意个字母或数字,但系统只计前19个字符。
    2. matlab对字体很敏感,一般都区分大小写,所以 a 和 A 是两个不同的变量。所有函数名必须小写,inv(A) 表示求矩阵A的逆矩阵,但 INV(A) 将代表一个未定义的函数。
    3. pi 表示 $\pi $
    4. inf 表示无穷 \(\infty\)
    5. NaN 是一个与 inf 有关的而又有不同性质的数,它表示不定数“NOT A NUMBER”
    6. 键入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中,多项式是按降幂顺序排列的稀疏组成的行向量表示的。

image

信号处理需要使用的函数

image

绘图

image

posted @ 2026-02-11 10:41  Miya555  阅读(54)  评论(0)    收藏  举报