mar*_*rio 2 indexing matlab if-statement
假设我有矩阵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不需要逻辑索引:
    IndexOfLessThan2 = A < 2;
    IndexOfGreaterThan5 = A > 5;
    IndexBtw2and5 = ~(IndexOfLessThan2 | IndexOfGreaterThan5);
    A = A + IndexOfLessThan2*10 + IndexOfGreaterThan5*20 + IndexBtw2and5*30;