File Exchange

## rgbconv.m

version 1.0 (2.78 KB) by

Convert hex color to or from MATLAB color vector. (with syntactic sugar).

Updated

I know this routine might be a clone. But the nifty thing with this is that you can enter the color code in many different formats as explained below.

It also senses what type of data you input wheter it is hexadecimal or if it is a MATLAB rgb vector, so you don't have to tell it which format you want to convert to!

Here comes the help section:
%%%%%%%%%%%%%%%%%%%%%%

RGBCONV Convert hex color to or from MATLAB rgb vector.
RGB = RGBCONV(HEX) where HEX is a string of hexadecimal numbers
'RRGGBB' where the parts RR, GG, BB are two digit hexadecimal
numberes corresponding to the strengths of the colors red,
green and blue. RGB is the matlab rgb-vector.
RGB = RGBCONV(HEX) where HEX is a string matrix of the form
['RR';'GG';'BB'], or a cell string {'RR','GG','BB'}, or
RGB = RGBCONV('RR','GG','BB')
[R,G,B] = RGBCONV(...) gives the corresponding matlab rgb-values
as scalar values in R, G and B correspondingly.

HEX = RGBCONV(RGB) where RGB is a matlab rgb-vector with
three elements each corresponding to strengs of
red, green and blue and ranging between 0 and 1.
HEX = RGBCONV(R,G,B) where R, G and B are scalar values
ranging between 0 and 1 each corresponding to red, green
and blue.
HEX is a string containing the hex values and is of length 6.
['RR','GG','BB'] = RGBCONV(...) gives the corresponding hex
values as two character strings 'RR', 'GG' and 'BB'

Examples:
rgbconv([.1 .2 .3])
rgbconv(.55,.6,.12)
[r,g,b]=rgbconv([.1 .2 .3])
rgbconv('1a334d')
rgbconv('1a','33','4d')
[r,g,b]=rgbconv({'F1','2A','55'})

Jeffrey Girard

### Jeffrey Girard (view profile)

With the fix from per isakson, this works well.

Thomas Guillod

### Thomas Guillod (view profile)

Nice code, was very helpful for GUI dev.

per isakson

### per isakson (view profile)

No, the problem is with rgbconv. To fix it add ",2" to line 67:

out=dec2hex(round(255*arg),2);

per isakson

### per isakson (view profile)

[0,0,0] cuases a runtime error (R2008a). I would say it is rather a bug in Matlab than in rgbconv.
/ per

>> rgbconv([0,0,0])
??? Error using ==> reshape
To RESHAPE the number of elements must not change.

Error in ==> rgbconv at 68
out=reshape(out',1,6);

MATLAB 5.2 (R10)