필터 지우기
필터 지우기

Removing rows with identical values in four columns.

조회 수: 1 (최근 30일)
Miguel L
Miguel L 2015년 12월 27일
댓글: Miguel L 2015년 12월 27일
Hello. I have a large matrix with dimensions of 300123 x 8.
As a note, I would like to say that in the matrix, column 1 to column 4 are time data (year, month, day, hour), and column 5 to column 8 are meteorological data measurements.
I want to delete all rows which have the same elements in column 1, column 2, column 3 and column 4.
For instance: a = [2009,10,9,5,0,0,0,0; 2009,10,2,5,3,8,7,7; 2009,10,9,5,2,1,9,1] => [2009,10,2,5,3,8,7,7]
In this example, column 1 to column 4 has repeated values in row 1 and row 3 (2009,10,9,5), and both rows are completely removed.
I want to implement this kind of solution to my whole matrix with dimensions of 300123 x 8.
Thanks in advance.

채택된 답변

Azzi Abdelmalek
Azzi Abdelmalek 2015년 12월 27일
편집: Azzi Abdelmalek 2015년 12월 27일
a = [2009,10,9,5,0,0,0,0
2009,10,2,5,3,8,7,7
2009,10,9,5,2,1,9,1
2004,10,9,5,2,1,9,1
2004,10,9,5,2,1,9,1
2004,10,9,5,2,1,9,1
2004,10,9,5,2,1,9,1
2024,10,9,5,2,1,9,1]
[ii,jj,kk]=unique(a(:,1:4),'rows','stable');
uu=accumarray(kk,1);
w=logical(zeros(numel(kk),1))
for k=1:numel(uu)
if uu(k)>1
w=w | (kk==k);
end
end
a(w,:)=[]

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Structures에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by