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 回答