# index out of bounds

1 view (last 30 days)
dingyi duan on 30 Oct 2015
Commented: dingyi duan on 30 Oct 2015
hi guys, new to matlab and came across a simple problem that takes me forever to get over. please help.
if rgb(1)==1
if rgb(2)==1
if rgb(3)==1
color='white';
else
color='yellow';
end
else
if rgb(3)==1
color='magenta';
else
color='red';
end
end
else
if rgb(1)==1
if rgb(3)==1
color='cyan';
else
color='green';
end
else
if rgb(3)==1
color='blue';
else
color='invalid input';
end
end
end
so its pretty much just mix three primary colors as input and output the mixed color.. i have a hard time going through this and i don't know where i did wrong.. thanks for answering. oh and here's the error:
Attempted to access rgb(3); index out of bounds because numel(rgb)=1.
Error in rgb_color (line 26) if rgb(3)==1

Ilham Hardy on 30 Oct 2015
Edited: Ilham Hardy on 30 Oct 2015
The error message is very clear. it stated that you tried to access the third index of rgb, whilst rgb only contains one value ( numel(rgb)=1).
Btw, you can also use logical operator instead of nested if-else statement
dingyi duan on 30 Oct 2015
alright guys.. i just found out whats wrong: its my input.. this code is fine.. thanks all for helping.

Stephen23 on 30 Oct 2015
Edited: Stephen23 on 30 Oct 2015
If you want to look up colornames then use my FEX submission colornames:
It is very simple to use:
>> colornames('html',[0.4,0.1,0.6])
ans = 'Purple'
>> colornames('html',[0.8,0.9,0.3])
ans = 'Yellow'
>> colornames('html',[1,1,1])
ans = 'White'
dingyi duan on 30 Oct 2015
thx but sry i have to use nested if...

### Categories

Find more on Solver Outputs and Iterative Display 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!

Translated by