- The most "tricky" part might be to describe the problem.
- Please give a concise explanation on why Answer by Star Strider on 26 Feb 2014 at 20:39 doesn't suffice.
- If you are asking for a working function, please give use a requirement specification.
Delete duplicate rows from a large cell array
3 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
I asked this before but it seems a bit tricky!
I have a cell array (attached) of the structure 1 x 2 then 1 x 8. This hold data for 2 years and the 8 arrays of the 1 x 8 array hold data in various formats.
However, the data has come with duplicates like this:
'2000-01-10 1:00' 'HCM' '268' '20' '260' '2345' '0' '90'
'2000-01-10 1:00' 'HCM' '268' '20' '260' '2345' '0' '90'
'2000-01-10 2:00' 'HCM' '268' '14' '210' '645' '3' '12'
'2000-01-10 2:00' 'HCM' '268' '14' '210' '645' '3' '12'
'2000-01-10 3:00' 'HCM' '268' '02' '230' '345' '2' '40'
'2000-01-10 3:00' 'HCM' '268' '02' '230' '345' '2' '40'
Where each column shown above actually represents a XXXX x 1 cell array (cannot remember the row count)
As chronological order is very important, I would like to remove corresponding duplicate rows (based on the first time array, from each array without changing the order to get something like this:
'2000-01-10 1:00' 'HCM' '268' '20' '260' '2345' '0' '90'
'2000-01-10 2:00' 'HCM' '268' '14' '210' '645' '3' '12'
'2000-01-10 3:00' 'HCM' '268' '02' '230' '345' '2' '40'
Big help if you can help me. I have tried many too many options!
2 Commenti
per isakson
il 5 Mar 2014
Modificato: per isakson
il 5 Mar 2014
Risposta accettata
Thomas
il 5 Mar 2014
Modificato: Thomas
il 5 Mar 2014
wit_dup={'2000-01-10 1:00' 'HCM' '268' '20' '260' '2345' '0' '90'
'2000-01-10 1:00' 'HCM' '268' '20' '260' '2345' '0' '90'
'2000-01-10 2:00' 'HCM' '268' '14' '210' '645' '3' '12'
'2000-01-10 2:00' 'HCM' '268' '14' '210' '645' '3' '12'
'2000-01-10 3:00' 'HCM' '268' '02' '230' '345' '2' '40'
'2000-01-10 3:00' 'HCM' '268' '02' '230' '345' '2' '40'
}
wd=wit_dup;
[~,idx]=unique(strcat(wd(:,1),wd(:,2),wd(:,3),wd(:,4),wd(:,5),wd(:,6),wd(:,7),wd(:,8)) );
withoutduplicates=wd(idx,:)
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Operators and Elementary Operations in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!