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

14 visualizaciones (últimos 30 días)
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);

Respuesta aceptada

KALYAN ACHARJYA
KALYAN ACHARJYA el 21 de Feb. de 2021
Editada: KALYAN ACHARJYA el 21 de Feb. de 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 comentarios
KALYAN ACHARJYA
KALYAN ACHARJYA el 21 de Feb. de 2021
Editada: KALYAN ACHARJYA el 21 de Feb. de 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);

Iniciar sesión para comentar.

Más respuestas (1)

Alvaro Mª Zumalacarregui Delgado
Alvaro Mª Zumalacarregui Delgado el 21 de Feb. de 2021
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);

Categorías

Más información sobre Vector Fields en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by