so in appdesigner im building a list box to turn the image to (red ,blue ,green) this is my code for it bout it wont run
Show older comments
value = app.ListBox.Value;
if value== 'Red'
a=(app.Image);
red=a;
red(:,:,2:3)=0
setappdata(0,'filename',red);
setappdata(0,'imrotation',red);
I=imshow(red,'parent',app.UIAxes2,...
'XData',[1 app.UIAxes2.Position(3)],...
'YData',[1 app.UIAxes2.Position(4)]);
app.UIAxes2.XLim=[0 I.XData(2)];
app.UIAxes2.YLim=[0 I.YData(2)];
else if value== 'Blue'
Agray=im2gray(app.Image);
zerochan = zeros(size(Agray),class(Agray));
blue = cat(3,zerochan,zerochan,Agray);
setappdata(0,'filename', blue);
setappdata(0,'imrotation', blue);
I=imshow(blue,'parent',app.UIAxes2,...
'XData',[1 app.UIAxes2.Position(3)],...
'YData',[1 app.UIAxes2.Position(4)]);
app.UIAxes2.XLim=[0 I.XData(2)];
app.UIAxes2.YLim=[0 I.YData(2)];
else
Agray=im2gray(app.Image);
zerochan = zeros(size(Agray),class(Agray));
green = cat(3,zerochan,Agray,zerochan);
setappdata(0,'filename',green);
setappdata(0,'imrotation',green);
I=imshow(green,'parent',app.UIAxes2,...
'XData',[1 app.UIAxes2.Position(3)],...
'YData',[1 app.UIAxes2.Position(4)]);
app.UIAxes2.XLim=[0 I.XData(2)];
app.UIAxes2.YLim=[0 I.YData(2)];
end
end
end

1 Comment
Answers (1)
Kevin Holly
on 13 Jan 2023
0 votes
Based on the red squiggly line under Methods in your screenshot, you may have an extra "end" in your code.
2 Comments
jana
on 13 Jan 2023
Use strings instead of character arrays for your if conditions
if value == "Red"
The size was causing issues. See difference of size between character and string arrays below.
Character array:
size('Red')
String array:
size("Red")
Categories
Find more on Develop Apps Using App Designer 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!