首页 > 编程学习 > MATLAB向量运算

MATLAB向量运算

发布时间:2022/1/17 12:26:43

基本运算

行列向量的单元素引用极其简单,下面是例子

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中需要采按照下述步骤进行向量的模的计算:

  1. 采取的矢量及自身的积,使用数组相乘(*)。这将产生一个向量sv,其元素是向量的元素的平方和V.

    sv = v.*v;

  2. 使用求和函数得到 v。这也被称为矢量的点积向量的元素的平方的总和V.

    dp= sum(sv);

  3. 使用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

Copyright © 2010-2022 ngui.cc 版权所有 |关于我们| 联系方式| 豫B2-20100000