Matlab App Designer Plot

52 views (last 30 days)
Olivia Wells
Olivia Wells on 18 Nov 2018
Edited: Cris LaPierre on 9 Dec 2020
I can run the GUI i created but i am having difficulties when i press the calculate button. Everything works fine and the graph appears however an extra empty figure window is also appearing. I am new to matlab so i am unsure how to resolve the problem. Also I would like the x grid to be visible upon running the GUI (the inital graph should have the x grid on so it resembles strips of wood in my case) but i cannot figure out how to do this. Once i run my GUI and press calculate the grid lines show up but they dont upon initally opening running the GUI
any help is appreciated! thank you

Accepted Answer

Cris LaPierre
Cris LaPierre on 18 Nov 2018
Without seeing your code, we can only guess. The most likely reason is you did not tell the plot command which axes to plot to. Include the target axes in the plot command:
plot(app.UIAxes,X,Y)
For the grid lines - in the design view in appDesigner, select your axes and then in the Axes Properties (on the right), expand GRIDS and place a check box in XGrid.
xGrid.png
  2 Comments
Olivia Wells
Olivia Wells on 19 Nov 2018
Here is my code below, I added your suggestion and the other figure pops up but it still graphs in the GUI properly. Also, I have the X Grid box checked already and it wont show up in the design view.
fig = app.UIFigure;
ax = app.UIAxes;
line (app.UIAxes,[x1(i,1), x2(i,1)], [y1(i,1), y2(i,1)]);
axis([0 8 -1 8])
hold on;
Screen Shot 2018-11-18 at 4.57.46 PM.png
Cris LaPierre
Cris LaPierre on 19 Nov 2018
Edited: Cris LaPierre on 9 Dec 2020
Are you using appdesigner to build your app or doing it programatically? It looks like appdesigner, so you do not need the following code
fig = app.UIFigure;
This is likely what is causing a second window to appear.
Also, you really don't need
ax = app.UIAxes;
Instead drag an axes component onto your canvas in the design view. Take note of the name (you can change it to be anything you want). This name is what you will use when specifying your target axes.
Also note that you must include a target axes for the axis and hold commands
axis(app.UIAxes,[0 8 -1 8]);
hold(app.UIAxes,'on')

Sign in to comment.

More Answers (1)

Angel Lozada
Angel Lozada on 15 May 2020
Hello.
I am trying to plot functions using Matlab AppDesigner.
It is possible to find my inquiry (better explained) in the attached file.
Regards.
  2 Comments
Cris LaPierre
Cris LaPierre on 15 May 2020
You should start a separate question for this request. Creating the plot is not the actual problem. It is converting a text input to a mathematical equation.
Angel Lozada
Angel Lozada on 15 May 2020
Dear Cris.
I will follow your suggestion.
Regards.

Sign in to comment.

Categories

Find more on Specifying Target for Graphics Output 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!