Matlab:两个矩阵之间的唯一值

时间:2012-06-29 11:49:16

标签: matlab matrix

我有两个矩阵:

 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)中变为零?

e.g。在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)。必须有更好的方法:)?

非常感谢你们。

0 个答案:

没有答案