本节说明 MATLAB 中一维数组(向量)的表示方式、行向量与列向量的写法、冒号生成等差序列、下标访问与逐元素运算。向量是矩阵的特殊情形;下标从 1 开始,与运算符一章中的数组运算(带点运算符)直接衔接。掌握行、列方向与 .*、.^ 等写法,是后续二维矩阵运算的基础。

行向量示例

同一行内用空格或逗号分隔元素,整体用方括号包住,即得到行向量:

r = [7 8 9 10 11]
r =
     7     8     9    10    11

行向量与列向量

行向量元素横排;列向量则在元素之间使用分号,使各元素各占一行。写矩阵时仍遵循同一规则:行内用空格或逗号,行间用分号。

行向量 r(空格/逗号分隔) 7 r(1) 8 r(2) 9 r(3) 10 r(4) 11 r(5) 列向量 c(分号分隔) 7 c(1) 8 c(2) 9 c(3)
行向量横排、列向量竖排;下标从 1 开始:r(1) 为 7,c(3) 为 9。
r = [7 8 9 10 11]      % 行向量
c = [7; 8; 9; 10; 11]  % 列向量
r =
     7     8     9    10    11

c =
     7
     8
     9
    10
    11

冒号生成等差向量

若需按固定步长生成连续数值,可使用冒号表达式,形式为 起点:步长:终点;省略步长时默认为 1。

v = 1:5          % 1 到 5,步长 1
v = 1:2:20       % 1 到 20,步长 2
v = 20:-2:10     % 从 20 递减至 10,步长 -2
v = 1:2:9
v =
     1     3     5     7     9

取元素

圆括号内写下标;end 表示该方向上的最后一个下标,无需事先计算长度。

v = [10 20 30 40 50 60];
v(3)      % 30
v(1:3)    % 10 20 30
v([2 5])  % 20 50
v(3:end)  % 30 40 50 60
v(:)      % 按列优先展开为列向量

向量运算

加减与标量乘除按对应位置或广播规则计算;逐元素乘、除、乘方须使用 .*、./、.^。单独的 * 表示矩阵乘法,两个同行向量直接相乘往往因维度不匹配而报错。

a = [1 2 3];
b = [4 5 6];
a + b          % 5 7 9
a - b          % -3 -3 -3
a * 2          % 2 4 6
a .* b         % 4 10 18
a ./ b         % 0.25 0.4 0.5
a .^ 2         % 1 4 9

常用函数

MATLAB 向量统计函数示例运行
v = [3 1 4 1 5];
length(v)    % 5
sum(v)       % 14
prod(v)      % 60
max(v)       % 5
min(v)       % 1
mean(v)      % 2.8
sort(v)      % 1 1 3 4 5

上述函数对矩阵同样适用;对二维数组,sum、mean 等默认多沿列方向运算,具体维度在矩阵运算一节再说明。

自查

  • 用 1:2:20 生成向量,再计算 v.^2(须带点乘方)。
  • 生成 x = 0:0.1:1,用 length 查看元素个数。
  • 从 x = 1:10 中取出第 2、4、6 个元素组成新向量。
  • 比较 x(end) 与 x(end-1) 的值。

本节说明了行向量与列向量的写法、冒号序列、下标与 end、逐元素运算及常用统计函数。下一节介绍创建矩阵:字面量、zeros / ones / eye、拼接与转置。