2
我有一個載體孤男寡女在一個向量乘以if語句的使用方法:矢量化
V=[ 1 2 3 5 9];
,想乘這樣的:
newVect=zeros(1,length(V));
for i=1:length(V)
if V(i)==1
newVect(i)=V(i)*somevaluex
elseif V(i)==5
newVect(i)=V(i)*somevaluey
else
newVect(i)=V(i);
end
這似乎很麻煩,因爲我實際上是在處理具有10000個元素的數組。不知何故,這可以用矢量化來代替嗎?
啊!很好謝謝 :)!如果V是一個大矩陣(r = 100000,c = 100),這是否必須在for循環內逐行進行?還是可以用類似於上述的方法來完成? – HCAI
如果'V'是一個矩陣,第一個例子肯定會起作用。第二個可能會改變'V'的形狀。更容易的是你自己嘗試。 – Oli
啊,我注意到如果someValuex = rand;那麼這個「rand」值在整個過程中保持不變,我希望它改變。你怎麼看?即。 'newVect = V。*(rand。*(V == 1)+ someValuey。*(V == 5)+ V。*((V〜= 1)&(V〜= 5)))' – HCAI