matlab中去掉矩阵重复行并且不改变原顺序
生活随笔
收集整理的這篇文章主要介紹了
matlab中去掉矩阵重复行并且不改变原顺序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、使用unique去掉矩陣中的重復行。
>> e=[2,2,2;3,3,3;1,1,1;1,1,1;0,0,0]e =2 2 23 3 31 1 11 1 10 0 0 >> f=unique(e) >> f =0 0 01 1 12 2 23 3 32、在上一步中f即是去掉e中重復行后的結果,但是matlab的unique函數對它進行了重新排序,如果我們想要去掉重復的行同時又不改變其原本的順序的話,可以進行如下操作:
>> %a.取出unique重排后的結果f和其原本在e中的行號: >> [f,location]=unique(e,'rows','first') f =0 0 01 1 12 2 23 3 3location =5312 >>%b.將location和f拼成一個新的數組,并按第一列的大小排序: >> res=sortrows([location,f]) res =1 2 2 22 3 3 33 1 1 15 0 0 0 >> %c.取上一步中得到的矩陣res中的除第一列以外的所有列: >> new_e=res(:,2:4)new_e =2 2 23 3 31 1 10 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)); 與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的matlab中去掉矩阵重复行并且不改变原顺序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab 纯数据表格,MATLAB
- 下一篇: centos mysql自动备份_Cen