Cell Array storing RGB
Show older comments
I am storing color short names in a cell array as follows:
color{i,j} = 'r';
Then I'd like to use this cell array to set the color properties of some texts as follows:
text('String', d{i,j},'Units', 'Points',...
'FontSize', 8, 'HorizontalAlignment', 'right', ...
'Color', color(i,j));
However, I get the error "Color value must be a 3 element numeric vector". I have tried using a function that convert the short name of colors to their RGB triplet, but it seems that color(i,j) does not output a string/char. How should I go about this? Thank you.
Accepted Answer
More Answers (1)
Image Analyst
on 15 May 2015
That should work except that you used parentheses which gives the whole cell, rather than braces, which gives the contents of the cell.
color(i,j) = a cell, the cell in the ith row, jth column of the cell array called color.
color{i,j} = the CONTENTS OF the cell at row i, column j
Try this:
text('String', d{i,j},'Units', 'Points',...
'FontSize', 8, 'HorizontalAlignment', 'right', ...
'Color', color{i,j}); % use braces instead of parentheses.
See the FAQ for a good explanation of when to use braces or parentheses: http://matlab.wikia.com/wiki/FAQ#What_is_a_cell_array.3F
Categories
Find more on Annotations in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!