基本运算
行列向量的单元素引用极其简单,下面是例子
a=[3 4 5 6 7 8];a(2)
ans =
4
b=[9;8;7;6;5;4];b(6)
ans =
4
还可以选择一个范围从向量的元素,使用sub_函数
blue=[9 8 7 6 5 4 3 2 1];
sub_blue=blue(7:-1:2)
sub_blue =
3 4 5 6 7 8
前面文章介绍过向量的加减法,要求矩阵的维度一致就可以了
a=[3,4,5,6,7,8];
b=[9 8 7 6 5 4];
disp(a-b);
disp(a+b);
-6 -4 -2 0 2 4
12 12 12 12 12 12
标量乘法和代数学中的向量数乘运算相同。
b=[9 8 7 6 5 4];
7*b
ans =
63 56 49 42 35 28
转置向量在后面加一个'即可实现
b=[9 8 7 6 5 4];
disp(b')
9
8
7
6
5
4
追加向量
MATLAB 允许在原有的向量中附加向量,共同创造新的向量。
编写向量时,如果要在列中编写,要保证两行元素数量相同。
a=[3,4,5,6,7,8];
b=[9 8 7 6 5 4];
c=[a,b]
d=[a;b]
e=[a',b']
f=[a';b']
输出得到
c =
3 4 5 6 7 8 9 8 7 6 5 4
d =
3 4 5 6 7 8
9 8 7 6 5 4
e =
3 9
4 8
5 7
6 6
7 5
8 4
f =
3
4
5
6
7
8
9
8
7
6
5
4
向量的模
向量 v 中的元素 v1, v2, v3, …, vn,下式给出其幅度:
|v| = √(v1^2 + v2^2 + v3^2 + … + vn^2)
MATLAB中需要采按照下述步骤进行向量的模的计算:
-
采取的矢量及自身的积,使用数组相乘(*)。这将产生一个向量sv,其元素是向量的元素的平方和V.
sv = v.*v;
-
使用求和函数得到 v。这也被称为矢量的点积向量的元素的平方的总和V.
dp= sum(sv);
-
使用sqrt函数得到的总和的平方根,这也是该矢量的大小V.
mag = sqrt(s);
值得注意的是,数组相乘得到的仍是一个向量而代数中得到的是数值。
下面是一个栗子
a=[3,4,5,6,7,8];
g=a.*a;
wxhn=sum(g);
x=sqrt(wxhn);
format long e
disp(x)
1.410673597966589e+01
向量点积
MATLAB 中两个向量的点积 a = (a1, a2, …, an) and b = (b1, b2, …, bn) 由以下给定:
a.b = ∑(ai.bi)
dot函数可以计算两个向量 a 和 b的点积,同时求向量元素的平方和也有了另外一个思路。
例题
clear,clc;
a=[3,4,5,6,7,8];
b=[9 8 7 6 5 4];
dot(a,b)
ans =
197
等差元素向量
当一个向量中的元素过多,同时向量的各元素有等差的规律,此时采用直接输入法将过于繁琐。针对该种情况 ,可以使用冒号(:) 来生成等差元素向量。
我们之前就已介绍过这个方法:n=(a:b:c),a为起始元,b为步长,c为终止元。我们要建立一个这样的向量时,还要保证它有意义。
用两个例子来说明:
rt=(1:-1:3)
rt =
空的 1×0 double 行矢量
这个输出的结果中没有向量元素,没有意义
a=[5:-1:3]
a =
5 4 3