我做了一些转换操作,其中我的矩阵(M)的某些数字被相互替换(所有数据变为5,所有2变为6,等等)。现在我知道我可以编写这样的代码:
if M(1,1)== 1 M(1,1)=5 end
if M (1,1)== 2 M(1,1)=6 end
if M(1,2)==1 M(1,2)=6 end
当然,如果我有(10×10×10)矩阵,这是很多不必要的工作。是否有可能定义3个维度(列,行,页面)或告诉matlab类似:
% scan from point (1,1,1) to point (10,10,10) and apply mathematical operations when condition is fulfilled.
谢谢
答案 0 :(得分:3)
有一个简单的命令可以使用逻辑索引将数组中的所有a
更改为b
。例如,
B = (M == 1);
M(B) = 5;
应将1
中的所有M
更改为5
s。
答案 1 :(得分:1)
我对MATLAB不是很熟悉,但似乎你应该能够定义3个标量变量i,j和k,并使用3个嵌套for循环迭代每个有序三元组(x,y,z) )0< = x,y,z< 10 ...在最里面的循环内执行切换逻辑。