How to create a numerical variable from a string stored in a cell array ?
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
I have a cell array that looks as follows:
countrycode = {'ALB';'ALB';'ALB';'ARG';'ARG';'BRA';'BRA';'BRA';'BRA'}
This is a short example, the list has about 50 countries, each with a different number of entries.
1. How can I create a numerical variable that assigns the value 1 to all 'ALB' entries, 2 to all 'ARG' entries, 3 to all 'BRA' entries and so on? 2. Is there a command akin to 'foreach' that would allow me to loop over all possible country codes? for instance, to extract data in a numerical variable associated with the variable countrycode?
1 Commento
Risposta accettata
Alexandra Harkai
il 15 Mar 2017
To get the numeric values:
country_idx = findgroups(countrycode);
For the second part, it really depends on what is it exactly you want to do. splitapply till likely be a helpful, for example, to count the number of entries within each country:
splitapply(@numel, countrycode, country_idx)
Più risposte (1)
Rik
il 15 Mar 2017
You can use unique to generate the list of codes, followed by ismember to find out the locations, so the result is a vector.
countrycode = {'ALB';'ALB';'ALB';'ARG';'ARG';'BRA';'BRA';'BRA';'BRA'};
list=unique(countrycode);
[~,Locb] = ismember(countrycode,list);
To my knowledge there is no foreach command in Matlab, but you can use a for-loop to loop over all the possible values. I suspect what you want may also be achieved without a loop, but you'dd have to tell us more about what exactly you want to do.
0 Commenti
Vedere anche
Categorie
Scopri di più su Creating and Concatenating Matrices 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!