How do I check if a value is a correct color?

8 visualizzazioni (ultimi 30 giorni)
Whether there is a function like
logical = isvalidcolor(value)
to check if some value may be used like a color (one of values specified in ColorSpec e.g.)

Risposta accettata

Image Analyst
Image Analyst il 16 Lug 2014
Not that I'm aware of - there's just not that much need - though you could write one if you want.
  4 Commenti
Ivan
Ivan il 30 Lug 2014
It's a good question! I havn't known about announcing an error by uicontrol or some else.
Image Analyst
Image Analyst il 30 Lug 2014
You could do something like
message = sprintf('%s is an invalid color. Please use r, g, b, y, m, c, k, or w', theirColor);
uiwait(warndlg(message));
return;

Accedi per commentare.

Più risposte (2)

Tommy
Tommy il 6 Dic 2015
Modificato: Tommy il 6 Dic 2015
Once I needed this function to suppress error messages, by setting wrong color values to MATLAB default. I used:
function logical_out = iscolor( color )
color = lower(color);
logical_out=(isnumeric(color) && (sum(size(color)==[1 3])==2 || ...
sum(size(color)==[3 1])==2) && sum((color<=[1 1 1] & ...
color>=[0 0 0]))==3) || sum(strcmpi({'y','m','c','r','g','b','w','k',...
'yellow','magenta','cyan','red','green','blue','white','black'},color))>0;
end
Hope this helps.
  6 Commenti
Grzegorz Lippe
Grzegorz Lippe il 26 Apr 2021
Well that helps until that point somebody specifies the color as hexadecimal value or integer from 0 ...255. Hope mathworks creates a validate color function :/

Accedi per commentare.


Paul Wintz
Paul Wintz il 20 Ago 2021
In Matlab 2020b and later, use the validatecolor function.

Categorie

Scopri di più su Graphics Object Programming in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by