如何在矩阵中消除最后两个元素相等的所有列?在Matlab中

时间:2011-12-11 23:23:39

标签: matlab

如何在矩阵(4000x10)中消除最后两个元素相等的所有列? (在Matlab中)

3 个答案:

答案 0 :(得分:5)

我猜以前的答案反转了行和列,我会这样做:

A=[1 2 3 ; 4 5 6 ; 5 5 5] 

A =

     1     2     3
     4     5     6
     5     5     5

这里,第二列具有相同的两个最后元素。

A(:,A(end,:)==A(end-1,:))=[]

A =

     1     3
     4     6
     5     5

答案 1 :(得分:1)

试试这个:

B = A( : , A(: , end-1) ~= A(: , end) )

以下是其工作原理:

  • A(:,end-1)获得倒数第二列
  • A(:,end)获取最后一列
  • A(: , end-1) ~= A(: , end)选择这些条目不相等的行

答案 2 :(得分:1)

首先索引最后两个元素相等的所有列,即矩阵的最后两行相等。所以我们假设矩阵是A

index = (A(:,end) == A(:,end-1) );

然后删除此列,

A(:,index) = [];