Tôi có một mảng boolean gọi là flag
.được vector hóa nếu trong MATLAB
Tôi có hai mảng số ifTrue
, ifFalse
. Tất cả các mảng này có cùng kích thước, Vì mục đích của câu hỏi này, giả sử mọi phần tử trong các mảng này là duy nhất.
Tôi muốn một hàm g
với tài sản mà
a = g(flag, ifTrue, ifFalse)
all(flag == (a == ifTrue))
all(~flag == (a == ifFalse))
Hoặc bằng tiếng Anh, tôi muốn g
trở ifTrue
yếu tố khi flag
là đúng, và ifFalse
yếu tố khi flag
là sai.
Hoặc, trong matlab, tôi có thể làm điều này với vòng:
a = zeros(size(ifTrue));
for i = 1 : numel(ifTrue);
if flag(i)
a(i) = ifTrue(i)
else
a(i) = ifFalse(i)
end
end
Có một cách tiếp cận vectorized?
Cảm ơn
1 Giải pháp này là hiệu quả hơn so với tôi :) – kol