how to label strings in an array with an ID

4 vues (au cours des 30 derniers jours)
Ryan Rose
Ryan Rose le 3 Août 2020
Commenté : Ryan Rose le 3 Août 2020
I have a array
StringID=['a',1;
'b',2;
'c',3]
and a table with a column with a bunch of strings that exactly match the strings in StringID.
tc=['c';
'b';
'c';
'a';
'c']
How can I make a column vector that identifies the strings with the number in StringID?
ans=[3;
2;
3;
1;
3]
I would like this to be scaleable to a few thousand rows and a StringID column of a couple hundred strings. I feel like there is a simple solution I'm not thinking of. I assume there is some combo of find and strcmp that I'm not thinking of. I could probably just do it with a loop, but I am trying to avoid that.

Réponse acceptée

Adam Danz
Adam Danz le 3 Août 2020
Modifié(e) : Adam Danz le 3 Août 2020
StringID needs to be a cell array. Then,
[~, idx] = ismember(tc,StringID(:,1));
Also see lower() if you want to control for cases.
  2 commentaires
madhan ravi
madhan ravi le 3 Août 2020
Ah much better ;)
Ryan Rose
Ryan Rose le 3 Août 2020
This is exactly what I was looking for. Thank you.

Connectez-vous pour commenter.

Plus de réponses (1)

madhan ravi
madhan ravi le 3 Août 2020
T = cell2table(StringID(:, 2));
T.Properties.RowNames = StringID(:, 1);
Wanted = T{num2cell(tc), :}

Catégories

En savoir plus sur Characters and Strings 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