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
聲明嗎?
假設我有基質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
聲明嗎?
你並不需要一個IF
需要logical indexing:
IndexOfLessThan2 = A < 2;
IndexOfGreaterThan5 = A > 5;
IndexBtw2and5 = ~(IndexOfLessThan2 | IndexOfGreaterThan5);
A = A + IndexOfLessThan2*10 + IndexOfGreaterThan5*20 + IndexBtw2and5*30;
謝謝,這正是我所需要的! – mario 2012-08-16 12:58:12