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ステートメントを使用できますか?

4

1 に答える 1

8

IF必要な論理インデックスは必要ありません:

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

    A = A + IndexOfLessThan2*10 + IndexOfGreaterThan5*20 + IndexBtw2and5*30;
于 2012-08-16T12:40:37.147 に答える