Home Replacing string values in cell array with numbers

Replacing string values in cell array with numbers

mHelpMe
1#
mHelpMe Published in 2017-12-07 09:16:16Z
 I have a cell array which contains some descriptions, namely my_des.  my_des = [{'FRD'} {'1'}; {'UNFRD'} {'2'}; {'OTH'} {'3'};];  I also have an approximately 5000x1 cell array. The elements in this array are either 'FRD', 'UNFRD' or 'OTH'. What I want to do is replace these text values with the corresponding numeric values in my_des. Currently my only idea (which I think isn't that great) is to loop through my_des and do a string replacement. Example: So say my current vector looks like this: FRD FRD OTH UNFRD OTH FRD  Then my desired output would be this: 1 1 3 2 3 1  The numbers come from the my_des array
Wolfie
2#
Wolfie Reply to 2017-12-07 09:41:32Z
 Do you want to use the characters '1', '2', '3' or just the numbers 1, 2, 3? The distinction is the difference between a 1 line answer and a 2 line answer! Based on your example, let's use the following data: arr = {'FRD'; 'FRD'; 'OTH'; 'UNFRD'; 'OTH'; 'FRD'};  Get the row index within my_des of each element in arr, and use that to get the corresponding 2nd column values... % If you just want the *number* then this is all you need [~, idx] = ismember(arr, my_des); % idx is the row within column 1 of my_des where the value in arr is found % >> idx = [1; 1; 3; 2; 3; 1] % If you want to get the values my_des then use idx as a row index out = mydes(idx, 2); % out is the corresponding values from the 2nd column of my_des, whatever they may be. % >> out = {'1'; '1'; '3'; '2'; '3'; '1'};  Aside: why are you declaring a cell array by concatenating 1-element cell arrays for my_des? Instead, you can just do this: my_des = {'FRD', '1'; 'UNFRD', '2'; 'OTH', '3'}; 
 You need to login account before you can post.
Processed in 0.356499 second(s) , Gzip On .