Error using quiver The size of Y must match the size of U or the number of rows of U.

14 vues (au cours des 30 derniers jours)
i am trying to create a vector field with app designer with the function quiver but i have an error 'Error using quiver
The size of Y must match the size of U or the number of rows of U.'
a = app.a.Value;
b = app.b.Value;
x1=0;
x2=2;
y1=0;
y2=2;
N = 20;
x = linspace(x1,x2,N);
y = linspace(y1,y2,N);
[X,Y]= meshgrid(x,y);
m = a.*y/b.*x;
S = atan (m);
U = cos (S);
V = sin (S);
quiver (app.Axes, X,Y,U,V);

Réponse acceptée

KALYAN ACHARJYA
KALYAN ACHARJYA le 21 Fév 2021
Modifié(e) : KALYAN ACHARJYA le 21 Fév 2021
Refer the MATLAB Docs, where U and V must be 2D as same sizes of X and Y. Please add the following line, this may allow to avoid the error
[U,V]=meshgrid(U,V);
  2 commentaires
KALYAN ACHARJYA
KALYAN ACHARJYA le 21 Fév 2021
Modifié(e) : KALYAN ACHARJYA le 21 Fév 2021
I have tried with non App case (Assigning the value a and b directly)
a = 2;
b= 3;
x1=0;
x2=2;
y1=0;
y2=2;
N = 20;
x = linspace(x1,x2,N);
y = linspace(y1,y2,N);
[X,Y]= meshgrid(x,y);
m = a.*y/b.*x;
S = atan (m);
U = cos (S);
V = sin (S);
[U,V]=meshgrid(U,V);
quiver (X,Y,U,V);

Connectez-vous pour commenter.

Plus de réponses (1)

Alvaro Mª Zumalacarregui Delgado
I have the same error but with other code, I only change the "m" value and Matlab sends me the same error:
P = 50;
Q = 60;
a = app.a.Value;
b = app.b.Value;
x1=0;
x2=2;
y1=0;
y2=2;
N = 20;
x = linspace(x1,x2,N);
y = linspace(y1,y2,N);
[X,Y]= meshgrid(x,y);
m = (P-a*y)/(Q-b*x);
S = atan (m);
U = -cos (S);
V = -sin (S);
[U,V]=meshgrid(U,V);
quiver (app.Axes, X,Y,U,V);

Catégories

En savoir plus sur Vector Fields dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by