Efficient application of unique and strcat functions
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
I use the following code on several occasions to keep only the rows with the condition that X elements don't repeat:
[~, ind,~] = unique(strcat(a(:,2)a(:, 6)));
a = a(ind,:);
In this case I keep the rows that have different combinations of the elements of column 2 and 6.
I use the functions unique and strcat because they work for cell type variables with both strings and numbers . The problem is that this code is not efficent and takes a lot of time to run. I was wondering if someone had a better solution. Thank you
0 Commenti
Risposta accettata
Matt J
il 10 Ago 2014
Modificato: per isakson
il 23 Ago 2014
Looks like you need the 'rows' flag in your call to unique. Also, it might help to avoid requesting additional output arguments that you don't need.
a = unique(strcat(a(:,2),a(:,6)),'rows');
Note that the use of ~ output arguments isn't the same as requesting fewer outputs. The ~ outputs will still be computed. They just won't be stored anywhere.
0 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Loops and Conditional Statements in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!