में मेरे पास एक बुलियन सरणी है जिसे flag
पर कॉल करें।वेक्टरकृत अगर matlab
मेरे पास दो अंकीय एरे ifTrue
, ifFalse
हैं। ये सभी सरणी एक ही आकार के हैं, इस प्रश्न के प्रयोजनों के लिए मान लें कि इन सरणी में प्रत्येक तत्व अद्वितीय है।
मैं संपत्ति के साथ एक समारोह g
कि
a = g(flag, ifTrue, ifFalse)
all(flag == (a == ifTrue))
all(~flag == (a == ifFalse))
या अंग्रेजी में, मैं g
चाहते ifTrue
तत्वों लौटने के लिए होगा जब flag
सच है, और ifFalse
तत्वों की तरह जब flag
गलत है जाएगा।
या, matlab में, मैं छोरों के साथ ऐसा कर सकता है:
a = zeros(size(ifTrue));
for i = 1 : numel(ifTrue);
if flag(i)
a(i) = ifTrue(i)
else
a(i) = ifFalse(i)
end
end
वहाँ एक vectorized दृष्टिकोण है?
धन्यवाद
+1 यह समाधान मेरा तुलना में बहुत अधिक कुशल है :) – kol