Efficient application of unique and strcat functions

1 vue (au cours des 30 derniers jours)
Maria
Maria le 10 Août 2014
Modifié(e) : per isakson le 23 Août 2014
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

Réponse acceptée

Matt J
Matt J le 10 Août 2014
Modifié(e) : per isakson le 23 Août 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.

Plus de réponses (0)

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by