1

我有2个矩阵:

 T3(:,:,1) =

 0     0     0     0     1     0     0     0     0
 0     0     0     0     2     0     0     0     0
 0     0     0     0     3     0     0     0     0
 0     1     0     1     4     2     0     4     0
 0     3     0     2     6     3     0     5     0
 2     4     2     5     7     5     4     6     5
 4     5     5     7     8     8     5     7     6
 5     6     6     8     9     9     8     9     8

 T3(:,:,2) =

 2     1     1     1     1     1     1     1     1
 3     3     2     2     2     2     2     2     2
 4     4     4     3     3     3     3     3     3
 5     5     5     5     4     4     4     4     4
 6     6     6     6     6     5     5     5     5
 7     7     7     7     7     7     6     6     6
 8     8     8     8     8     8     8     7     7
 9     9     9     9     9     9     9     9     8

如何使 T3(:,:,1) 中的值在 T3(:,:,2) 中变为零?

例如,在 T3(:,:,1) 的第一列中,值为 2,4,5。我希望 T3(:,:,2) 的第一列将值 2,4,5 设为零。

 T3(:,:,2) =

 0     0     1     0     0     1     1     1     1
 3     0     0     0     0     0     2     2     2
 0     0     4     3     0     0     3     3     3
 0     0     0     0     0     4     0     0     4
 6     0     0     6     0     0     0     0     0
 7     7     7     0     0     7     6     0     0
 8     8     8     0     0     0     0     0     7
 9     9     9     9     0     0     9     0     0

我想知道是否有办法使用 setdiff 或 unique 来做到这一点。

for y=1:H-1
     for z=1:H-1
         for h=1:H
             for d=1:D-1
                 if T3(y,h,d+1) == T3(z,h,d)
                    T3(y,h,d+1)=0;
                 end
             end
         end
     end
end

我可以将其作为一个循环来执行,其中 H = 列数 (9) 和 D = 维度数 (2)。一定会有更好的办法 :)?

非常感谢你们。

4

0 回答 0