这篇来讲一下Matlab中矩阵和数组的应用,MATLAB是matrix laboratory的缩写形式。MATLAB®主要用于处理整个的矩阵和数组,这也是Matlab设计的初衷,只不过后面越更新功能越庞大。而,其他编程语言大多逐个处理数值。
所有MATLAB变量都是多维数组,与数据类型无关。矩阵是指通常用来进行线性代数运算的二维数组。所以,在执行一些运算中,要牢记变量是数组的概念,除非你的变量只是一个单值。

文中代码出现的>>均表示在命令行中输入命令,下方则表示命令行输出结果。
数组创建
首先,我们创建一个一行四列的数组,请使用逗号,或空格分隔各个元素。这里多说一句,任何程序中的逗号均指的是英文格式的逗号。
>> a = [1 2 3 4]
a =
1 2 3 4这种数组为行向量。
要创建多行多列的矩阵,请使用分号分隔各行,空格或逗号,分隔每行的元素。
>> a = [1 3 5; 2 4 6; 7 8 10]
a =
1 3 5
2 4 6
7 8 10创建矩阵的另一种方法是使用ones、zeros或rand等函数。其中,ones可以生成元素全是1的矩阵,zeros可以生成元素全是0的矩阵,rand生成元素是随机数的矩阵。此外,还有eye函数可以生成单位矩阵。
创建一个由零组成的 5×1 列向量。
>> z = zeros(5,1)
z =
0
0
0
0
0其他几个函数的用法一样,相关输入例子如下:
>> ones(2,3)
ans =
1 1 1
1 1 1
>> rand(2,3)
ans =
0.5524 0.4381 0.3824
0.8570 0.5005 0.4975
>> eye(2,3)
ans =
1 0 0
0 1 0矩阵和数组运算
MATLAB中,可以使用单一的算术运算符或函数来处理矩阵中的所有元素值。还记得刚才我们生成的a矩阵吗,这里我们就用a矩阵来进行一些简单的运算,相关代码如下:
a =
1 3 5
2 4 6
7 8 10
>> a+10
ans =
11 13 15
12 14 16
17 18 20
>> sin(a)
ans =
0.8415 0.1411 -0.9589
0.9093 -0.7568 -0.2794
0.6570 0.9894 -0.5440Matlab中,矩阵进行转置变换,请使用单引号':
>> a'
ans =
1 2 7
3 4 8
5 6 10Matlab中,可以使用*运算符执行标准矩阵乘法,这将计算行与列之间的内积。例如,矩阵乘以其逆矩阵可返回单位矩阵:
>> p = a*inv(a)
p =
1.0000 0.0000 0
-0.0000 1.0000 0
0.0000 -0.0000 1.0000这里需要注意的是,p不是整数值矩阵。MATLAB默认将数字存储为浮点值,算术运算可以区分实际值与其浮点表示之间的细微差别。使用format命令可以显示更多小数位数:
>> format long
>> p = a*inv(a)
p =
0.999999999999997 0.000000000000003 0
-0.000000000000002 1.000000000000002 0
0.000000000000002 -0.000000000000009 1.000000000000000使用以下命令将显示内容重置为更短格式
>> format shortformat仅影响数值的输出显示,而不影响MATLAB对数字的计算或保存方式。
矩阵之间要执行元素级乘法(而非矩阵乘法),请使用.*运算符:
>> p = a.*a
p =
1 9 25
4 16 36
49 64 100乘法、除法和幂的矩阵运算符分别具有执行元素级运算的对应数组运算符。例如,计算a的各个元素的三次方:
>> a.^3
ans =
1 27 125
8 64 216
343 512 1000矩阵串联
矩阵串联是连接数组以便形成更大数组的过程。实际上,第一个数组是通过将其各个元素串联起来而构成的。成对的方括号[]即为串联运算符。
>> A = [a,a]
A =
1 3 5 1 3 5
2 4 6 2 4 6
7 8 10 7 8 10使用逗号将彼此相邻的数组串联起来称为水平串联。每个数组必须具有相同的行数。同样,如果各数组具有相同的列数,则可以使用分号垂直串联。
>> A = [a; a]
A =
1 3 5
2 4 6
7 8 10
1 3 5
2 4 6
7 8 10串联之前,要判断矩阵之间的行号列号。其中,行数相同,才可以执行水平串联;列书相同,才可以执行垂直串联。

复数矩阵
复数包含实部和虚部,虚数单位是-1的平方根。
>> sqrt(-1)
ans =
0.0000 + 1.0000i要表示复数的虚部,请使用i或j。
>> c = [3+4i, 4+3j; -i, 10j]
c =
3.0000 + 4.0000i 4.0000 + 3.0000i
0.0000 - 1.0000i 0.0000 +10.0000i转载文章,原文出处:MathWorks官网,由古哥整理发布
如若转载,请注明出处:https://iymark.com/articles/2824.html

微信扫一扫
支付宝扫一扫

