how to label strings in an array with an ID

4 Ansichten (letzte 30 Tage)
Ryan Rose
Ryan Rose am 3 Aug. 2020
Kommentiert: Ryan Rose am 3 Aug. 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.

Akzeptierte Antwort

Adam Danz
Adam Danz am 3 Aug. 2020
Bearbeitet: Adam Danz am 3 Aug. 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 Kommentare
madhan ravi
madhan ravi am 3 Aug. 2020
Ah much better ;)
Ryan Rose
Ryan Rose am 3 Aug. 2020
This is exactly what I was looking for. Thank you.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

madhan ravi
madhan ravi am 3 Aug. 2020
T = cell2table(StringID(:, 2));
T.Properties.RowNames = StringID(:, 1);
Wanted = T{num2cell(tc), :}

Kategorien

Mehr zu Characters and Strings finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by