# MATLAB: Replace number by string

num2str

I have a vector with numeric values and I would like to replace the number in a given cell by a string (data are attached). For instance, 23=BDHE, 9997=BEIS, 11=CUAL, 4=CTGB, 60=MYMU, 1010=INJP, 3006=YNTA, and 80=TRQO. Thanks in Advance.

#### Best Answer

• Well, a quick solution would be:
valueCell={ 23,23,23, ...           9997,9997,9997,9997,9997,9997,9997, ...           11,11,11,11,11,11,11, ...           4,4,4,4,4, ...           60,60,60,60,60,60, ...           1010,1010,1010,1010,1010,1010,1010,1010, ...           3006,3006,3006,3006,3006, ...           80,80,80,80,80};strCell=cell(size(valueCell));strCell( cellfun(@(c) c==23,valueCell) )={'BDHE'};strCell( cellfun(@(c) c==9997,valueCell) )={'BEIS'};strCell( cellfun(@(c) c==11,valueCell) )={'CUAL'};strCell( cellfun(@(c) c==4,valueCell))={'CTGB'};strCell( cellfun(@(c) c==60,valueCell) )={'MYMU'};strCell( cellfun(@(c) c==1010,valueCell) )={'INJP'};strCell( cellfun(@(c) c==3006,valueCell) )={'YNTA'};strCell( cellfun(@(c) c==80,valueCell) )={'TRQO'};
But a better solution would be
valueCell={ 23,23,23, ...           9997,9997,9997,9997,9997,9997,9997, ...           11,11,11,11,11,11,11, ...           4,4,4,4,4, ...           60,60,60,60,60,60, ...           1010,1010,1010,1010,1010,1010,1010,1010, ...           3006,3006,3006,3006,3006, ...           80,80,80,80,80};valueTable=cell2table(valueCell','VariableNames',{'value'});conversionTable=table([    23,  9997,    11,     4,    60,  1010,  3006,    80]', ...                      {'BDHE','BEIS','CUAL','CTGB','MYMU','INJP','YNTA','TRQO'}', ...                      'VariableNames',{'value','str'});strTable=join(valueTable,conversionTable);