choosing unique elements in the order that they appear in a column of a cell vector
Mostra commenti meno recenti
Dear all,
I have the following cell matrix
Out={
'MN' 'AER_KL1' 'Bdrerv_1'
'MN' 'AER_KL1' 'Bdrerv_1'
'MN' 'AER_KL1' 'Bdrerv_1'
'MN' 'AER_KL1' 'Bdrerv_1'
'MN' 'AER_KL1' 'ksitre +2er'
'MN' 'AER_KL1' 'ksitre +2er'
'MN' 'AER_KL1' 'ksitre +2er'
'MN' 'AER_KL1' 'ksitre +2er'
'MN' 'AER_KL1' 'ksitre +2er'
'MN' 'AER_KL1' 'ksitre +2er'
'MN' 'AER_KL1' 'ksitre +2er'
'MN' 'AER_KL1' 'eorftr>2'
'MN' 'AER_KL1' 'eorftr>2'
'MN' '100_pr' 'se 34'
'MN' '100_pr' 'se 34'
'MN' '100_pr' 'se 34'
'MN' '100_pr' 'se 34'
'MN' '100_pr' 'se 34'
'MN' '100_pr' 'se 34'
'MN' '100_pr' 'se 34'
'MN' '100_pr' 'fjgitow f12'
'MN' '100_pr' 'fjgitow f12'
'MN' '100_pr' 'fjgitow f12'
'MN' '100_pr' 'fjgitow f12'
'MN' '100_pr' 'fjgitow f12'
'MN' '100_pr' '344 edd' }
I want to simplify this matrix so as to have the following specific structure
'MN' 'AER_KL1' 'Bdrerv_1'
'MN' 'AER_KL1' 'ksitre +2er'
'MN' 'AER_KL1' 'eorftr>2'
'MN' '100_pr' 'se 34'
'MN' '100_pr' 'fjgitow f12'
'MN' '100_pr' '344 edd' }
As you can see I want to select the unique elements from the last column in the order that appear in “out” and construct the above simplified matrix.
IS there any quick/efficient code for doing this?
The above matrix is an example
My original data set is of dimension 25000 by 4. So a general code for doing this is greatly appreciated
Risposta accettata
Più risposte (1)
You can to it "by feet"
unique_rows = 1;
for i = 2:size(Out, 1)
equals_row = 0;
for j = 1:numel(unique_rows)
equal_row = strcmp(Out{i, 3}, Out{unique_rows(j), 3});
if equal_row, break, end
end
if ~equal_row, unique_rows(end+1) = i, end
end
Out_simple = Out(unique_rows, :)
Categorie
Scopri di più su Data Preprocessing in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!