跳转至内容

MATLAB编程/向量和矩阵/向量运算

来自Wikibooks,开放世界中的开放书籍

向量运算

[编辑 | 编辑源代码]

创建向量

[编辑 | 编辑源代码]

如果向量的元素遵循顺序加法,我们可以使用括号和以下内容


例如,如果我们想要一个从数字1开始,到数字19结束,增量值为3的向量,我们可以输入以下命令

>> V = (1:3:19)

V =
     1     4     7    10    13    16    19

访问向量

[编辑 | 编辑源代码]

要访问向量中的值,您只需要指定向量和数组索引,从 1 到 n。

使用上面向量 V 的示例,我们访问向量 V 中的第三个元素,我们输入以下命令

>> V(3)

ans =
     7

我们可以通过输入起始索引和结束索引来访问多个元素。例如,我们需要访问第 3 个元素到第 6 个元素,我们输入如下

>> V(3:6)

ans =
     7    10    13    16

查找长度

[编辑 | 编辑源代码]

我们还可以使用length函数来了解向量的长度,例如我们可以知道 V 的长度。向量 V 中有 7 个元素,因此答案应该是 7

>> length(V)

ans =
     7

向量求和

[编辑 | 编辑源代码]

我们可以使用sum函数查找向量的和,它通过将向量中的所有数字加在一起得到这个值:例如,1+4+7+10+13+16+19

>> sum(V)

ans =
    70

查找最大值和最小值

[编辑 | 编辑源代码]

我们可以分别知道向量中哪个是最大数和最小数,我们可以使用minmax函数来实现。

>> min(V)

ans =
     1

>> max(V)

ans =
     19

查找均值

[编辑 | 编辑源代码]

mean函数用于查找向量中的中心/中间值。

>> mean(V)

ans =
    10

查找平均值

[编辑 | 编辑源代码]

average函数用于查找向量的平均值。

>> average(V)

ans =
    10

>> % Another way of finding average
>> sum(V)/length(V)

ans =
    10

查找标准差

[编辑 | 编辑源代码]

要查找标准差,需要使用std函数。
标准差是衡量一组值的变异或离散程度的指标。标准差低表示值倾向于接近该组的均值(也称为期望值),而标准差高表示值分布在更宽的范围内。

>> std(V)

ans =
    6.4807

随机排列

[编辑 | 编辑源代码]

有两种不同的方法可以为向量创建随机排列

a. randperm(N)返回一个包含整数 1:N 的随机排列的向量。

>> P=randperm(7)

ans =
     1     6     2     3     4     5     7

b. randperm(N,K)返回一个行向量,其中包含从 1:N 中随机选择的 K 个唯一整数。

>>>> P=randperm(7,5)

P =
     5     1     6     2     3

排序向量

[编辑 | 编辑源代码]

您可能希望对向量进行排序,您可以在 MATLAB 中执行此操作。

如果要以降序方式对向量进行排序,请使用以下示例。注意,我们使用上面随机排列示例 b。

>> % using argument 'descend' to sort from big to small number
>> S=sort(P,'descend')

S =
     6     5     3     2     1
>> % using argument 'asscend' to sort from  small to big number
>> S=sort(P,'ascend')

S =
     1     2     3     5     6

计算点积

[编辑 | 编辑源代码]

要查找点积,您可以使用dot函数。

注意:两个向量必须具有相同的长度。答案通常以标量的形式出现。

向量的点积计算如下




>> % creating row vector A and B
>> A = [3 ,7 , 2]

A =
     3     7     2

>> B = [1,2,5]

B =
     1     2     5

>> dot(A,B)

ans =
    27

计算叉积

[编辑 | 编辑源代码]

要查找叉积,可以使用cross函数。注意:两个向量必须具有相同的长度3。答案通常以3维向量的形式出现。

待办事项:查找可以很好地说明叉积的图片。

>> cross(A,B)

ans =
    31   -13    -1

计算向量中常用的值

[编辑 | 编辑源代码]

要查找向量中重复次数最多的值,可以使用mode函数。

>>%create vectors with random numbers
>> A=randi(50,1,10)

A =
    18    42    30    28    46    15    38    38    20    29

>> mode(A)

ans =
    38
>>%38 appear twice in that vector
华夏公益教科书