MATLAB向量是一维数组,横着排叫行向量,竖着排叫列向量:
r = [7 8 9 10 11]r =
7 8 9 10 11这是一个行向量。
行向量与列向量
差别主要在分隔符:同一行用空格或逗号,换到下一行用分号。
行向量横着排、列向量竖着排,MATLAB 下标从 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 2 3 ... 100]。冒号可以按步长批量生成:
v = 1:5 % 1 到 5,步长 1
v = 1:2:20 % 1 到 20,步长 2
v = 20:-2:10 % 从 20 往下,步长 -2完整形式是 起点:步长:终点。省略步长时默认为 1:
v = 1:2:9v =
1 3 5 7 9取元素
下标从 1 开始,用圆括号:
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(:) % 全部变成列向量形式end 表示最后一个下标,不用先数长度。
向量运算
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这些函数对矩阵也常用,默认多沿列方向计算,后面还会碰到。
动手练习
- 用
1:2:20生成向量,再算v.^2(注意点号) - 生成
x = 0:0.1:1,用length看有多少个元素 - 从
x = 1:10取出第 2、4、6 个元素组成新向量 - 试
x(end)与x(end-1)各是什么