Azzera filtri
Azzera filtri

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

5 visualizzazioni (ultimi 30 giorni)
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);

Risposta accettata

KALYAN ACHARJYA
KALYAN ACHARJYA il 21 Feb 2021
Modificato: KALYAN ACHARJYA il 21 Feb 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 Commenti
KALYAN ACHARJYA
KALYAN ACHARJYA il 21 Feb 2021
Modificato: KALYAN ACHARJYA il 21 Feb 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);

Accedi per commentare.

Più risposte (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);

Categorie

Scopri di più su Vector Fields in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by