假设我有矩阵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
声明吗?
答案 0 :(得分:8)
您不需要IF
您需要的logical indexing:
IndexOfLessThan2 = A < 2;
IndexOfGreaterThan5 = A > 5;
IndexBtw2and5 = ~(IndexOfLessThan2 | IndexOfGreaterThan5);
A = A + IndexOfLessThan2*10 + IndexOfGreaterThan5*20 + IndexBtw2and5*30;