index out of bounds

2 次查看(过去 30 天)
dingyi duan
dingyi duan 2015-10-30
评论: dingyi duan 2015-10-30
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
Ilham Hardy 2015-10-30
编辑:Ilham Hardy 2015-10-30
What is your rgb value?
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
  5 个评论
Walter Roberson
Walter Roberson 2015-10-30
How are you invoking your code? I can see your file is named rgb_color.m but how are you starting it running?
dingyi duan
dingyi duan 2015-10-30
alright guys.. i just found out whats wrong: its my input.. this code is fine.. thanks all for helping.

请先登录,再进行评论。

更多回答(1 个)

Stephen23
Stephen23 2015-10-30
编辑:Stephen23 2015-10-30
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'

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by