matlab中去掉矩阵重复行并且不改变原顺序

您所在的位置:网站首页 matlab中去除数组中的指定序号的元素 matlab中去掉矩阵重复行并且不改变原顺序

matlab中去掉矩阵重复行并且不改变原顺序

2023-07-30 10:38| 来源: 网络整理| 查看: 265

1、使用unique去掉矩阵中的重复行。

>> e=[2,2,2;3,3,3;1,1,1;1,1,1;0,0,0] e = 2 2 2 3 3 3 1 1 1 1 1 1 0 0 0 >> f=unique(e) >> f = 0 0 0 1 1 1 2 2 2 3 3 3

2、在上一步中f即是去掉e中重复行后的结果,但是matlab的unique函数对它进行了重新排序,如果我们想要去掉重复的行同时又不改变其原本的顺序的话,可以进行如下操作:

>> %a.取出unique重排后的结果f和其原本在e中的行号: >> [f,location]=unique(e,'rows','first') f = 0 0 0 1 1 1 2 2 2 3 3 3 location = 5 3 1 2 >>%b.将location和f拼成一个新的数组,并按第一列的大小排序: >> res=sortrows([location,f]) res = 1 2 2 2 2 3 3 3 3 1 1 1 5 0 0 0 >> %c.取上一步中得到的矩阵res中的除第一列以外的所有列: >> new_e=res(:,2:4) new_e = 2 2 2 3 3 3 1 1 1 0 0 0 >> %new_e即是去掉了e中的重复行,并且没有对其进行重新排列的数组。

3、

function new_a = unique_arrys(a) [b,location] = unique(a,'rows','first'); res = sortrows([location,b]); new_a=res(:,2:size(res,2));


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3