数组运算
数组运算符对数据集中的所有元素执行相同的运算。这些类型的运算用于重复计算。例如,假设您通过记录各圆锥体的直径 (D) 和高度 (H) 来收集这些圆锥体的体积 (V)。如果您只收集一个圆锥体的信息,则可以只计算该圆锥体的体积:
V = 1/12*pi*(D^2)*H;
现在,收集 10,000 个圆锥体的信息。向量 D 和 H 均包含 10,000 个元素,并且您需要计算 10,000 个体积。在绝大多数编程语言中,您需要设置类似于以下 MATLAB 代码的循环:
for n = 1:10000
V(n) = 1/12*pi*(D(n)^2)*H(n));
end
借助 MATLAB,您可以使用与标量情形类似的语法对每个向量元素执行计算:
% Vectorized Calculation
V = 1/12*pi*(D.^2).*H;
注意
在运算符 *、/ 和 ^ 之前放置句点 (.),将其转换为数组运算符。
借助数组运算符,您还能够组合不同维度的矩阵。这样自动扩展大小为 1 的维度有助于对网格创建、矩阵和向量运算等进行向量化处理。
假设矩阵 A 代表考试分数,各种行表示不同的班级。您需要计算每个班级的平均分数与各分数的差。使用循环,该运算如下所示:
A = [97 89 84; 95 82 92; 64 80 99;76 77 67;...
88 59 74; 78 66 87; 55 93 85];
mA = mean(A);
B = zeros(size(A));
for n = 1:size(A,2)