如何逐点扫描整个矩阵

时间:2011-07-17 16:32:39

标签: matlab

我做了一些转换操作,其中我的矩阵(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.

谢谢

2 个答案:

答案 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 ...在最里面的循环内执行切换逻辑。