MATLAB: Create a plot with a drop down menu in an App

app designerdrop downMATLABmatlab guiplot

Hello everybody,
i have the following problem and i dont know how to solve it:
I have created an app in Matlab and in this app i select a set of data, which i ll load into the workspace. Next i have 2 drop down menus. With these drop downs i want to select the x-axis and y axis of the workspace.
% Select the set off data and load the workspace variables in the drop down menu
% Button pushed function: ffnenButton
function ffnenButtonPushed(app, event)
[name,path] = uigetfile('*.dat', 'Bitte gewünschte dat-Datei auswählen');
if name==0 return, end
mdfimport(name);
vars = evalin('base', 'whos');
cell_array = cell(size(vars));
for i=1:length(vars)
cell_array{i} = vars(i).name;
end
app.dd_achse_x.Items = cell_array;
app.dd_achse_y.Items = cell_array;
end
% x Axis
% Value changed function: dd_achse_x
function dd_achse_xValueChanged(app, event)
xAchse = app.dd_achse_x.Value;
end
% y Axis
% Value changed function: dd_achse_y
function dd_achse_yValueChanged(app, event)
yAchse = app.dd_achse_y.Value;
end
% Create Graph
% Button pushed function: GrapherstellenButton
function GrapherstellenButtonPushed(app, event)
plot(xAchse,yAchse,'k-')
end
As seen above, i want to create a plot with the selected data. This plot should pop up in another figure with fig = uifigure … etc.
But the problem is, that "xAchse" and "yAchse" are not defined in the function.
I hope that someone can help me. If you have any questions, just let me know.
Thanks

Best Answer

I think you don't even need to define callback functions for your dropdowns. They are already properties of your app object.
Basically you can do this:
function GrapherstellenButtonPushed(app, event)
plot(app.dd_achse_x.Value,app.dd_achse_y.Value,'k-')
end
There might be a problem. You should check app.dd_achse_y.Value is value of a dropdown item, it might be string or cell array of character vectors. So you might need to convert it to numerical value before you plot.