MATLAB官方地址: 基本矩阵运算
test1 grid on折线图
首先,创建一个名为 a 且包含 9 个元素的简单向量。
a = [1 2 3 4 6 4 3 4 5]
a = [1 2 3 4 6 4 3 4 5] (1×9)
现在,对向量 a 中的每个元素加 2,并将结果存储在一个新向量中。
请注意 MATLAB 不需要对向量或矩阵运算进行特殊的处理。
b = a + 2
b = [ 3 4 5 6 8 6 5 6 7] (1×9)
在 MATLAB 中创建图形就像执行一条命令一样简单。接下来用网格线来绘制向量和结果。
plot(b)
grid on
test2 添加轴标签
MATLAB 也可以创建包含轴标签的其他图表类型。
bar(b)
xlabel('Sample #') %x轴坐标
ylabel('Pounds') %y轴坐标
test3 用符号绘图
MATLAB 也可以在绘图中使用符号。下面是用星号来标记各个点的一个示例。MATLAB 提供了多种符号和线型。
% plot(b,'*') %e.g.1
% plot(b,'.-') %e.g.2
plot(b,'-+') %e.g.3
axis([0 10 0 10])
test4 矩阵计算
MATLAB 擅长的一个方面是矩阵计算。
创建矩阵就像创建向量一样简单,可使用分号 (;) 分隔矩阵的各行。
A = [1 2 0; 2 5 -1; 4 10 -1]
output:
A =
1 2 0
2 5 -1
4 10 -1
可以很容易地计算矩阵 A 的转置。
B = A' %此处为单引号
output:
B =
1 2 4
2 5 10
0 -1 -1
接下来,将这两个矩阵相乘。同样请注意,MATLAB 不要求像处理数据集合一样处理矩阵。MATLAB 知道您正在处理矩阵并相应调整您的计算。
C = A * B
output:
C =
5 12 24
12 30 59
24 59 117
无需执行矩阵相乘,使用 .* 运算符即可将两个矩阵或向量的对应元素相乘。
C = A .* B
output:
C =
1 4 0
4 25 -10
0 -10 1
使用矩阵A对方程 A*x = b 求解,方法是使用 \(反斜杠)运算符。
b = [1;3;5]
x = A\b
res = A*x - b % A*x 等于 b 的结果放入res中
output:
res =
0
0
0
MATLAB 拥有几乎所有用于常见矩阵计算的函数。
clc;
clear;
%% test4_1
A = [1 2 0; 2 5 -1; 4 10 -1]
B = A'
C = A * B
C = A .* B %此结果会将上一结果覆盖
%% test4_2
b = [1;3;5]
x = A\b
res = A*x - b % A*x 等于 b 的结果放入res中
%% test4_3
eig(A) %获取特征值的函数
svd(A) %获取奇异值的函数
% poly函数生成特征多项式系数的向量
% A 的特征多项式 p
p = round(poly(A))
% 使用 roots 函数很容易确定多项式的根,这些值实际上是原始矩阵的特征值
roots(p)
%% test4_4
% 求两个向量的卷积
q = conv(p,p)
% 再次求卷积并绘制结果图
r = conv(p,q)
plot(r);
%% output:
q =
1 -10 35 -52 35 -10 1
r =
1 -15 90 -278 480 -480 278 -90 15 -1
%% test4_5
% 使用 who 或 whos 命令可随时获取内存中存储的变量列表
whos
%% output:
Name Size Bytes Class Attributes
A 3x3 72 double
B 3x3 72 double
C 3x3 72 double
ans 1x1 16 double complex
b 3x1 24 double
p 1x4 32 double
q 1x7 56 double
r 1x10 80 double
res 3x1 24 double
x 3x1 24 double
% 可以通过键入特定变量的名称来获取该变量的值
% 可以在编辑器编辑好运行也可以在命令行窗口直接键入查询
A
%% output:
A =
1 2 0
2 5 -1
4 10 -1
% 同样MATLAB 在计算中很容易处理复数
sqrt(-1)
%% output:
ans =
0.0000 + 1.0000i
每行可以有一条以上的语句,使用逗号或分号分隔各个语句。
如果未指定变量来存储操作的结果,则结果将存储在名为 ans 的临时变量中。