2012-08-16 35 views
2

假設我有基質A:變元件上條件

A = 

1  2  3 
4  5  6 

對於每個元件x<2,加10,
每個元素x>5,添加20和
每個元素2<=x<=5,加30.

所以對於我的例子矩陣A,我需要與下列矩陣B落得:

B = 

11 32 33 
34 35 26 

我需要能夠以一般的方式做到這一點,因爲實際的矩陣將會非常大。有什麼建議麼?我可以使用IF聲明嗎?

回答

8

你並不需要一個IF需要logical indexing

IndexOfLessThan2 = A < 2; 
    IndexOfGreaterThan5 = A > 5; 
    IndexBtw2and5 = ~(IndexOfLessThan2 | IndexOfGreaterThan5); 

    A = A + IndexOfLessThan2*10 + IndexOfGreaterThan5*20 + IndexBtw2and5*30; 
+0

謝謝,這正是我所需要的! – mario 2012-08-16 12:58:12