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!

 採用された回答

Mischa Kim
Mischa Kim 2021 年 1 月 17 日

0 投票

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 件のコメント

ErikJon Pérez Mardaras
ErikJon Pérez Mardaras 2021 年 1 月 17 日
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
Mischa Kim
Mischa Kim 2021 年 1 月 17 日
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.
ErikJon Pérez Mardaras
ErikJon Pérez Mardaras 2021 年 1 月 17 日
Sorry! That's true. My fault
Thanks a lot for your reply!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File Exchange で Develop Apps Using App Designer についてさらに検索

製品

リリース

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by