convert values to string
1 次查看(过去 30 天)
显示 更早的评论
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)};
end
0 个评论
采纳的回答
Guillaume
2015-12-21
Simply,
groupLabels = labels(groupValue);
2 个评论
Guillaume
2015-12-21
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'};
更多回答(2 个)
Geoff Hayes
2015-12-21
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);
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Data Type Conversion 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!