mar*_*rio 2 indexing matlab if-statement
假设我有矩阵A:
A =
1 2 3
4 5 6
Run Code Online (Sandbox Code Playgroud)
对于每个元件x<2,加10,
对每一个元素x>5,添加20,和
对于每个元素2<=x<=5,添加30.
所以对于我的示例矩阵A,我需要得到以下矩阵B:
B =
11 32 33
34 35 26
Run Code Online (Sandbox Code Playgroud)
我需要能够以一般方式执行此操作,因为实际矩阵将非常大.有什么建议?我可以使用该IF声明吗?
您IF不需要逻辑索引:
IndexOfLessThan2 = A < 2;
IndexOfGreaterThan5 = A > 5;
IndexBtw2and5 = ~(IndexOfLessThan2 | IndexOfGreaterThan5);
A = A + IndexOfLessThan2*10 + IndexOfGreaterThan5*20 + IndexBtw2and5*30;
Run Code Online (Sandbox Code Playgroud)