Using a drop down menu or pushbuttons to display graphs

I am trying to create an interactive interface that has a drop down menu with two options "2D Plot" and "3D Plot" and when one of these options is selected it launches the respected graph. I am finding the drop down menu to be kinda complicated for me so if having two push buttons is easier then that will also work. Here is what I have with my code so far but I keep getting a message that says "Error while evaluation UIControl Callback". Please let me know if you can help! Thank you!
global Figure2D Figure3D
[num,txt,raw] = xlsread('Surface_Data.xlsx', 'PDA-PTFE_PFQNM_SA003ASCII3', 'A2:SR513');
[ny,nx] = size(num);
L = 20; %micrometer
B = 20; %micrometer
x = linspace(0,L,nx);
y = linspace(0,B,ny);
[X,Y] = meshgrid(x,y);
Figure2D = figure;
pcolor(X,Y,num);
Figure3D = figure;
surf(X,Y,num);
plotStyle2D = uicontrol(Figure2D,'Style','popupmenu');
plotStyle2D = uicontrol(Figure3D,'Style','popupmenu');
menuItems = [" Select Plot " "2D Plot" "3D Plot"];
dropDownPosition = [20 80 100 40];
plotStyle2D.String = menuItems;
plotStyle2D.Position = dropDownPosition;
plotStyle3D.String = menuItems;
plotStyle3D.Position = dropDownPosition;
plotStyle2D.Callback = @PlotType;
H
function PlotType(src,event)
val = src.Value;
str = src.String;
if(str{val} == '2D Plot')
figure(Figure2D);
elseif(str{val} == '3D Plot')
figure(Figure3D);
end
end

댓글 수: 4

Use strcmp() rather than == to compare between character vectors.
I am very new to matlab, I changed it to strcmp() and now im just getting even more errors. Do you think you take a look at my code and tell me what else is wrong?
What are the other errors you are getting?
You should also be setting the Callback for plotStyle3d

댓글을 달려면 로그인하십시오.

답변 (1개)

Kevin Phung
Kevin Phung 2019년 3월 10일
does this work for you?
function PlotType(src,event)
val = src.Value;
str = src.String;
if strcmp(src.String,'2D Plot')
figure(Figure2D);
elseif strcmp(src.String,'3D Plot')
figure(Figure3D);
end
end

카테고리

도움말 센터File Exchange에서 Creating, Deleting, and Querying Graphics Objects에 대해 자세히 알아보기

질문:

2019년 3월 10일

댓글:

2019년 3월 10일

Community Treasure Hunt

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

Start Hunting!

Translated by