【发布时间】:2013-07-25 08:10:46
【问题描述】:
我正在尝试使用逻辑数组掩码来对该数组 a = [1:1:2000} 的所有值求平方。逻辑数组掩码定义为 b = a
【问题讨论】:
标签: matlab
我正在尝试使用逻辑数组掩码来对该数组 a = [1:1:2000} 的所有值求平方。逻辑数组掩码定义为 b = a
【问题讨论】:
标签: matlab
a = 1:2000; %# 1 by 2000 double
b = a<500; %# 1 by 2000 logical
a_squared = a(b).^2; %# 1 by 499 double
%# logical index--^ ^-- 'dot' means element-wise operation
【讨论】:
如果您需要结果与a 的大小相同(保持a >= 500 的值不变),那么:
a_sq = (a .^ 2) .* (a < 500) + a .* (a >= 500);
【讨论】:
另一个,更棘手。在这里,我们将逻辑掩码应用于幂,它的值是 1 或 2。
a_sq = a .^ (2 - (a >= 500));
【讨论】: