Matlab用矩阵中的条件替换特定值

时间:2018-03-31 18:41:16

标签: matlab matrix

我对矩阵有误。我不明白为什么它不起作用。这是代码:

A = zeros(3,3,3);
A(:,:,1) = [1 2 3; 4 5 6; 7 8 9];
A(:,:,2) = [1 2 3; 1 2 3; 1 2 3];
A(:,:,3) = [1 2 3; 4 5 6; 7 8 9];

我想仅替换仅限于第二维的条件的值,使用:

A(A(:,:,2)==1)=0

但它取代了第一维度! :

0     2     3
0     5     6
0     8     9

有没有人可以向我解释为什么不起作用,拜托?

1 个答案:

答案 0 :(得分:1)

这一行的问题在于你在A上应用了2D蒙版(A(:,:,2)== 1),它有3个维度。

相反,您可以使用以下方法:

temp = A(:,:,2);
temp(temp==1)=0;
A(:,:,2) = temp;