matlab中去除矩阵中相同的行

背景

最近一直在研究电路故障分析,在电路波形中提取到了一些数据,由于样本数据很多,因此也就有很多重复的,我们需要将这些数据应用到支持向量机进行分类模型的建立,为避免相同的数据在模型的建立中没有起到任何的作用,因此,需要将这些相同的数据进行删除,只保留一个。

转变为数学问题就是:matlab中如何搜索一个矩阵中 值相同的行数并去除。

例子如下:

A=[1 0 0 0;
1 1 1 1;
1 0 0 0;
0 1 1 1];如何将最后一行去掉??”

编写了一个函数,这个函数可以去掉矩阵中的重复行。
函数代码如下:

function a=removeSameRowInMatrix(a)
[m,n]=size(a);
b=zeros(m,1);
for i=1:m-1
    for j=i+1:m
        if sum(a(i,:)==a(j,:))==n
            b(j,1)=1;
        end
    end
end
for i=m:-1:1
    if b(i,1)==1
        a(i,:)=[];
    end
end

你可能感兴趣的:(matlab,matlab,去除相同的行)