MATLAB是一种可以进行数值分析和数据可视化的交互式语言,广泛地应用在振动控制工程的分析与设计。各种不同的工具箱使MATLAB扩展到不同领域。
1.1 矩阵生成
矩阵(matrix)是一种按行(row)和列(column)组织的数值的集合。
A=[1 2 3 4;5 6 7 8;9 10 11 12]
用撇号(apostrophe)可以对矩阵进行转置(transpose)
B=A'
两个整数(integer)间使用冒号(colon)来生成两个整数间的所有整数
a=1:8 会生成行向量(row vector) a=[1 2 3 4 5 6 7 8 ]
三个数之间使用冒号可以生成首尾两数之间按中间数为步长的所有数
b=0.0 : .2 : 1.0 会生成行向量(row vector) b=[0.0 0.2 0.4 0.6 0.8 1.0]
其他还有如下生成方式:
C=linspace(0,10,21) //生成线性空间行向量(0~10之间生成21个)
D=logspace(-1,1,10) //生成对数空间行向量(-1~1之间生成10个)
eye(3) //生成3*3的单位矩阵(identity matrix)
zeros(3,2) //生成3*2的全零矩阵
1.2 矩阵处理
矩阵单元数
假设有矩阵A(2,3)
size(A) 返回行数和列数
d=size(A) //d=[2 3]
length(A) 返回所有维度中的最大值
e=length(rand(2,3,5)) //e=5
转置(transpose)
A'
获取矩阵中的某一列或某一行
A(:,3) //获取A中的第3列数据
A(2,:) //获取A中的第2行数据
矩阵点乘,两矩阵维度必须完全一样
A(2,3);B(2,3);C=A.*B;
如果是方阵(square matrix),类似于E,多次乘法可以简写为
E.^4
矩阵乘法
A(2,3);B(3,2);C=A*B //C应该为C(2,2)
如果是方阵(square matrix),类似于E,多次乘法可以简写为
E^4
1.3 函数
MATLAB包含许多标准函数,如sin 和 cos
i=0+1.0i;
j=0+1.0i;
cos(pi)=-1;
exp(1)=2.7183;
log(exp(1))=1;
log10(10)=1;
inv()返回矩阵的逆矩阵(inverse matrix)
B=inv(A);
det()返回矩阵的行列式的值(determinant of a matrix)
det(A);
trace()返回矩阵的主对角线值之和
trace(A);
可以使用【help 函数名】来获取函数说明
1.4 画图
MATLAB可以方便画图丰富的数值图形。
e.g 在[pi/100, 10pi] 画出sin(x)/x的图
x=pi/100:pi/100:10*pi;
y=sin(x)/x;
plot(x,y);
grid;
常用画图函数:
plot(x,y) //画图函数
subplot() //一张纸上画多图,确定图的位置
figure
subplot(2,1,1);
plot(x,y1);
subplot(2,1,2);
plot(x,y2);
title()
xlabel();
ylabel();
grid;
1.5 编程
1.5.1 m-文件
包含许多matlab语句的文件叫m文件。
1.5.2 循环
for循环
for n=0:10
x(n+1)=sin(pi*n/10);
end
循环可以嵌套
H=zeors(5)
for k=1:5
for l=1:5
H(k,l)=1/(k+l-1)
end
end
1.5.3 if语句
if 条件
语句
end
if 条件
语句
else 条件
语句
end
1.5.4 子函数
function [返回值] = 函数名(参数)
function [mean] = stat(x)
n = length(x);
mean = sum(x) /n;