index out of bounds

1 ビュー (過去 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 件のコメント
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 件)

Stephen
Stephen 2015 年 10 月 30 日
編集済み: Stephen 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'
  1 件のコメント
dingyi duan
dingyi duan 2015 年 10 月 30 日
thx but sry i have to use nested if...

サインインしてコメントする。

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by