![MATLAB教学(一)基本矩阵运算](http://www.hcworkshop.xin/wp-content/uploads/2017/11/intro_01.png)
这个例子展示了在MATLAB语言中处理矩阵的基本技术和功能。
首先,让我们创建一个简单的向量,它有9个元素,叫做 a 。
a = [1 2 3 4 6 4 3 4 5]
>> a = 1 2 3 4 6 4 3 4 5
现在,我们将a向量的每个元素加上2 , 并将结果存储在一个新的向量中。
Notice how MATLAB requires no special handling of vector or matrix math.
b = a + 2
>> b = 3 4 5 6 8 6 5 6 7
在MATLAB中创建图形就像一个命令一样简单。让我们把向量加法的结果用网格线画出来。
plot(b) grid on
MATLAB也可以使用轴标签来制作其他图形类型。
bar(b) xlabel('Sample #') ylabel('Pounds')
MATLAB也可以在绘图中使用符号。这里有一个用星星标出分数的例子。MATLAB提供了多种其他符号和线型。
plot(b,'*') axis([0 10 0 10])
MATLAB擅长的一个领域是矩阵计算。
创建一个矩阵很容易使一个矢量,用分号(;)将一个矩阵的行。
A = [1 2 0; 2 5 -1; 4 10 -1]
>> A = 1 2 0 2 5 -1 4 10 -1
我们可以很容易地找到矩阵A的转置。
B = A'
>> B = 1 2 4 2 5 10 0 -1 -1
现在让我们把这两个矩阵相乘。
请注意,MATLAB并不要求你处理矩阵作为一个数字集合。MATLAB知道何时处理矩阵,并据此调整计算。
C = A * B
>> C = 5 12 24 12 30 59 24 59 117
我们不使用矩阵乘法,而是使用*运算符相乘两个矩阵或向量的相应元素。
C = A .* B
>> C = 1 4 0 4 25 -10 0 -10 1
让我们用矩阵的求解方程,* x = B,我们通过使用\(反斜杠)算子。
b = [1;3;5]
>> b = 1 3 5
x = A\b
>> x = 1 0 -1
现在我们可以证明一个x等于b。
r = A*x - b
>> r = 0 0 0
MATLAB具有几乎所有类型的公共矩阵计算的功能。
有获得特征值的函数…
eig(A)
>> ans = 3.7321 0.2679 1.0000
…奇异值。
svd(A)
>> ans = 12.3171 0.5149 0.1577
“poly”函数生成一个包含特征多项式系数的向量。
矩阵A的特征多项式是
p = round(poly(A))
>> p = 1 -5 5 -1
我们可以用根函数很容易地找到多项式的根。
这些实际上是原始矩阵的特征值。
roots(p)
>> ans = 3.7321 1.0000 0.2679
MATLAB在矩阵计算之外有许多应用。
两向量的卷积…
q = conv(p,p)
>> q = 1 -10 35 -52 35 -10 1
…或卷积的结果。
r = conv(p,q)
>> r = 1 -15 90 -278 480 -480 278 -90 15 -1
plot(r);
在任何时候,我们都可以使用who命令来存储我们存储在内存中的变量的列表。
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 = 1 2 0 2 5 -1 4 10 -1
你可以用逗号或分号分隔每个表有一个以上的声明在一行。
如果你不指定一个变量来存储操作的结果,其结果是存储在临时变量一样。
sqrt(-1)
>> ans = 0.0000 + 1.0000i
正如你所看到的,MATLAB在计算中很容易处理复数。
下一节:基本矩阵操作
。。。。
打赏作者
《MATLAB教学(一)基本矩阵运算》有1个想法
Pingback 引用通告: MATLAB基础教学 | Hannes的站点