index out of bounds

6 次查看(过去 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 中查找有关 MATLAB 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by