本节说明 MATLAB 中一维数组(向量)的表示方式、行向量与列向量的写法、冒号生成等差序列、下标访问与逐元素运算。向量是矩阵的特殊情形;下标从 1 开始,与运算符一章中的数组运算(带点运算符)直接衔接。掌握行、列方向与 .*、.^ 等写法,是后续二维矩阵运算的基础。
行向量示例
同一行内用空格或逗号分隔元素,整体用方括号包住,即得到行向量:
r = [7 8 9 10 11]r =
7 8 9 10 11行向量与列向量
行向量元素横排;列向量则在元素之间使用分号,使各元素各占一行。写矩阵时仍遵循同一规则:行内用空格或逗号,行间用分号。
行向量横排、列向量竖排;下标从 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,步长 -2v = 1:2:9v =
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常用函数
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、拼接与转置。