Draw a circle on matlab app designer?

I am making an app on Matlab app designer which consist on the following as you can see below: A graph panel and a Button, which when clicked, a circle that I have defined in the code is drawn. The issue here is that I have made two different codes that work perfectly in the command window but in app designer only works one, while the other one does not.
One of those both codes I have designed is the following one. Here I define the code of the circle I would like to draw when I click the button
As you can see, It is drawn perfectly
But this is the other code (much more easier to me) that doesn't draw well the circle
This is what it draws:
I would like to know how can I make the second code to draw the circle perfectly. Why doesn't it draw the circle? I don't understand why both of them work perfectly on the command window and thet don't on matlab app.designer.
Thank you very much!

 Accepted Answer

Mischa Kim
Mischa Kim on 17 Jan 2021
Hi ErikJon, if the plot input is a matrix (e.g. your circ) "...the plot function plots the columns of the matrix (circ) versus their row number. The x-axis scale ranges from 1 to the number of rows in the matrix." So this is the designed behavior of the plot command for matrices. See the documentation here for plot(Y) for more info.

3 Comments

Thanks for your reply!
Yes, I checked that page but it doesn't solve the problem. It says that if I have plot(X,Y) and X and Y are both matrix, they have to have the same dimentions. And in my example, they do have the same dimensions. In circ[xp;yp] xp and yp have the same dimensions.
However, I still don't understand why this works on matlab command window
plot(circ);
and this
plot(app.panel, circ);
does not work on matlab app designer
Different behavior between running from the command window and as an app would indeed be confusing. What happens if you run the following from the command window?
clear;
r = 4;
caca = 2*pi;
ang = linspace(0,caca);
xp = r*cos(ang);
yp = r*sin(ang);
circ = [xp;yp];
figure(1)
plot(xp,yp)
figure(2)
plot(circ)
For me this creates the same two plots that you are showing in your question, as it should.
Sorry! That's true. My fault
Thanks a lot for your reply!

Sign in to comment.

More Answers (0)

Categories

Find more on 2-D and 3-D Plots in Help Center and File Exchange

Products

Release

R2019b

Community Treasure Hunt

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

Start Hunting!