【发布时间】:2011-12-14 14:55:02
【问题描述】:
我有一个布尔数组,称之为flag。
我有两个数值数组ifTrue、ifFalse。所有这些数组都具有相同的大小,出于本问题的目的,假设这些数组中的每个元素都是唯一的。
我想要一个函数g,其属性为
a = g(flag, ifTrue, ifFalse)
all(flag == (a == ifTrue))
all(~flag == (a == ifFalse))
或者用英文,我希望g 在flag 为真时返回ifTrue 元素,在flag 为假时返回ifFalse 元素。
或者,在 matlab 中,我可以使用循环来做到这一点:
a = zeros(size(ifTrue));
for i = 1 : numel(ifTrue);
if flag(i)
a(i) = ifTrue(i)
else
a(i) = ifFalse(i)
end
end
有矢量化方法吗?
谢谢
【问题讨论】:
标签: matlab vectorization conditional-operator