我正在尝试使用逻辑数组掩码来对此数组的所有值进行平方a = [1:1:2000}。逻辑阵列掩码定义为b = a <500。 我如何使用蒙版对这些值进行平方?
答案 0 :(得分:8)
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
答案 1 :(得分:2)
如果您需要的结果与a
相同(保持a >= 500
值),则:
a_sq = (a .^ 2) .* (a < 500) + a .* (a >= 500);
答案 2 :(得分:1)
另一个,更棘手。这里我们将逻辑掩码应用于幂,它获得值1或2.
a_sq = a .^ (2 - (a >= 500));