许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  Matlab基本矩阵运算详解

Matlab基本矩阵运算详解

阅读数 5
点赞 0
article_banner

基本矩阵运算

以下示例演示了以 MATLAB® 语言处理矩阵的基本方法和函数。

首先,创建一个名为 a 且包含 9 个元素的简单向量。

a = [1 2 3 4 6 4 3 4 5]

a = 1×9

1 2 3 4 6 4 3 4 5

现在,对向量 a 中的每个元素加 2,并将结果存储在一个新向量中。

请注意 MATLAB 不需要对向量或矩阵运算进行特殊的处理。

b = a + 2

b = 1×9

3 4 5 6 8 6 5 6 7

在 MATLAB 中创建图形就像执行一条命令一样简单。接下来用网格线来绘制向量和结果。

plot(b)

grid on

bc8a4554767cf918138d9fc85b7c4c2d.png

MATLAB 也可以创建包含轴标签的其他图表类型。

bar(b)

xlabel('Sample #')

ylabel('Pounds')

26569a3d314f2e86e746f60eed632e59.png

MATLAB 也可以在绘图中使用符号。下面是用星号来标记各个点的一个示例。MATLAB 提供了多种符号和线型。

plot(b,'*')

axis([0 10 0 10])

eef3ff2a8ee5c4c32e8d22962a5083e0.png

MATLAB 擅长的一个方面是矩阵计算。

创建矩阵就像创建向量一样简单,可使用分号 (;) 分隔矩阵的各行。

A = [1 2 0; 2 5 -1; 4 10 -1]

A = 3×3

1 2 0

2 5 -1

4 10 -1

可以很容易地计算矩阵 A 的转置。

B = A'

B = 3×3

1 2 4

2 5 10

0 -1 -1

接下来,将这两个矩阵相乘。

同样请注意,MATLAB 不要求像处理数据集合一样处理矩阵。MATLAB 知道您正在处理矩阵并相应调整您的计算。

C = A * B

C = 3×3

5 12 24

12 30 59

24 59 117

无需执行矩阵相乘,使用 .* 运算符即可将两个矩阵或向量的对应元素相乘。

C = A .* B

C = 3×3

1 4 0

4 25 -10

0 -10 1

使用矩阵 A 对方程 A*x = b 求解,方法是使用 \(反斜杠)运算符。

b = [1;3;5]

b = 3×1

1

3

5

x = A\b

x = 3×1

1

0

-1

现在可以显示 A*x 等于 b。

r = A*x - b

r = 3×1

0

0

0

MATLAB 拥有几乎所有用于常见矩阵计算的函数。

有用于获取特征值的函数...

eig(A)

ans = 3×1

3.7321

0.2679

1.0000

...以及用于获取奇异值的函数。

svd(A)

ans = 3×1

12.3171

0.5149

0.1577

“poly”函数生成特征多项式系数的向量。

矩阵 A 的特征多项式为

det(λI-A)

p = round(poly(A))

p = 1×4

1 -5 5 -1

使用 roots 函数很容易确定多项式的根。

这些值实际上是原始矩阵的特征值。

roots(p)

ans = 3×1

3.7321

1.0000

0.2679

除了矩阵计算之外,MATLAB 还有许多其他应用。

求两个向量的卷积...

q = conv(p,p)

q = 1×7

1 -10 35 -52 35 -10 1

...或再次求卷积并绘制结果图。

r = conv(p,q)

r = 1×10

1 -15 90 -278 480 -480 278 -90 15 -1

plot(r);

2835f56379337547f2d59eb2d1ebaecf.png

使用 who 或 whos 命令可随时获取内存中存储的变量列表。

whos

Name Size Bytes Class Attributes

A 3x3 72 double

B 3x3 72 double

C 3x3 72 double

a 1x9 72 double

ans 3x1 24 double

b 3x1 24 double

p 1x4 32 double

q 1x7 56 double

r 1x10 80 double

x 3x1 24 double

可以通过键入特定变量的名称来获取该变量的值。

A

A = 3×3

1 2 0

2 5 -1

4 10 -1

每行可以有一条以上的语句,使用逗号或分号分隔各个语句。

如果未指定变量来存储操作的结果,则结果将存储在名为 ans 的临时变量中。

sqrt(-1)

ans = 0.0000 + 1.0000i

正如所见,MATLAB 在计算中很容易处理复数。

相关主题


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空