文章目录
创建向量
创建等间距向量
对于长向量,输入单个数值是不实际的。可用来创建等间距向量的替代便捷方法是使用 : 运算符并仅指定起始值和最终值。
y = 5:8
y =
5 6 7 8
指定间距
: 运算符使用默认的间距 1,但是您可以指定您自己的间距,如下所示。
x = 20:2:26
x =
20 22 24 26
向量中所需的元素数目已知
如果您知道向量中所需的元素数目(而不是每个元素之间的间距),则可以改用 linspace 函数:
linspace(first,last,number_of_elements)
注意,请使用逗号 (,) 分隔 linspace 函数的输入。
x = linspace(0,1,5)
x =
0 0.250 0.500 0.750 1.000
转置
linspace 和 : 运算符都可创建行向量。但是,您可以使用转置运算符 (’) 将行向量转换为列向量。
x = 1:3;
x = x'
x =
1
2
3
创建行向量并将其全部转置
您可以通过在一条命令中创建行向量并将其全部转置来创建列向量。注意此处使用圆括号来指定运算的顺序。
x = (1:2:5)'
x =
1
3
5
数组创建函数
rand
MATLAB 包含许多函数,可帮助您创建常用的矩阵,例如随机数矩阵。
x = rand(2)
x =
0.8147 0.1270
0.9058 0.9134
请注意,rand(2) 命令中的 2 指定输出将为一个 2×2 的随机数矩阵。
创建非方阵
x = rand(2,3)
x =
0.6324 0.2785 0.9575
0.0975 0.5469 0.9649
全零矩阵
x = zeros(6,3)
矩阵大小
size(x)
使用一行代码创建与现有矩阵大小相同的矩阵。
rand(size(x))
对数组进行索引
一个数值
可以使用行、列索引从数组中提取值。
y = A(5,7)
此语法将会提取 A 的第 5 行第 7 列的值,然后将结果赋给变量 y。
end
您可以使用 MATLAB 关键字 end 作为行或列索引来引用最后一个元素。
y = A(end,2)
请注意,您可以将算术运算与关键字 end 结合使用。例如:
y = A(end-1,end-2)
提取多个元素
用作索引时,冒号运算符 (😃 可指代该维度中的所有元素。以下语法
x = A(2,:)
会创建一个包含 A 中第 2 行上所有元素的行向量。
冒号运算符可以引用某个值范围。以下语法会创建一个包含矩阵 A 的第 1 行、第 2 行和第 3 行所有元素的矩阵。
x = A(1:3,:)
单个索引值可用于引用向量元素。例如
x = v(3)
会返回向量 v 的第 3 个元素(当 v 为行向量或列向量时)。
单个索引值范围可用于引用向量元素的子集。例如
x = v(3:end)
返回向量 v 的一个子集,其中包含从第三个到最后一个元素范围内的所有元素。
更改数组中的值
可以结合使用索引和赋值来修改变量的元素。
A(2) = 11
对向量执行数组运算
MATLAB 的设计让您能够自然地处理数组。例如,您可以将一个标量值与数组中的所有元素相加。
y = x + 2
可以将任意两个大小相同的数组相加,相乘或相除。
z = x + y
z = 2*x
y = x/3
使用 max 函数来确定向量的最大值。
xMax = max(x)
在单个命令中对整个向量或值数组执行数学运算。
xSqrt = sqrt(x)
* 运算符执行矩阵乘法。因此,如果您使用 * 将两个大小相同的向量相乘,则由于内部维度不一致,您将会收到一条错误消息。
z = [3 4] * [10 20]
错误使用 *
用于矩阵乘法的维度不正确。
而 .* 运算符执行按元素乘法,允许您将两个大小相同的数组的对应元素相乘。
z = [3 4] .* [10 20]
z =
30 80