2013-04-22 42 views

回答

4

在完全相同的方式如在左手側:

testmatrix(testmatrix<10) = testmatrix(testmatrix<10)*2 

或者作爲Amro指出,可以節省計算通過創建可重用的邏輯索引掩碼:

idx = testmatrix < 10 
testmatrix(idx) = testmatrix(idx)*2 

第二種方法在具有更復雜條件的更多情況下或者在con dition重複多次或當速度是一個主要問題

+2

@ user2306536:你也可以保存以備重新使用變量的邏輯索引掩模:'IDX =(testmatrix <10);'然後'testmatrix (idx)= testmatrix(idx)* 2;' – Amro 2013-04-22 08:46:30

3

你需要的是:

testmatrix(testmatrix < 10) = testmatrix(testmatrix < 10)*2; 
+0

就是這樣,謝謝。 – Traubenfuchs 2013-04-22 08:23:33

+0

@ user2306536:你應該接受Dan的回答。這是一樣的,它稍微老一點。 – 2013-04-22 08:32:36

+0

你說得對。我選擇Roneys的答案是因爲它從一開始就出現在最前面,所以認爲它是第一個。 – Traubenfuchs 2013-04-22 08:42:56

0

如何:

A =蘭迪(100,1000,1) ;

cond = A < = 10;

測試= A(COND)* 2