convert values to string

2 views (last 30 days)
Ingrid on 21 Dec 2015
Commented: Guillaume on 21 Dec 2015
I have a vector with values to define groups (groupValue, in this case 1000x1 array with values from 1 to 5) I also have a cell array with strings for each of these values (labels, 5x1 cell array) I want to have a 1000x1 cell array with strings for the labels instead of values. How can I do this more efficiently i.e. without a for loop?
for kk = 1:nElements
groupLabels{kk} = labels{groupValue(kk)};

Accepted Answer

Guillaume on 21 Dec 2015
groupLabels = labels(groupValue);
Guillaume on 21 Dec 2015
Yes, for this to work groupValue must be integers between 1 and numel(labels). You could precede the above line with:
validateattributes(groupValue, {'numeric'}, {'positive', 'integer', '<=', numel(labels)}, '', 'groupValue'};

Sign in to comment.

More Answers (2)

Geoff Hayes
Geoff Hayes on 21 Dec 2015
Ingrid - if labels is your cell array of string labels and groupValue is your integer array of group values (or indices into labels) then perhaps you could try something like
groupLabels = labels(groupValue);

Renato Agurto
Renato Agurto on 21 Dec 2015
hello. This should work
groupLabels = labels(groupValue);

Community Treasure Hunt

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

Start Hunting!

Translated by