How do I show a quiver plot from a matrix?

5 visualizaciones (últimos 30 días)
Dylan Voss
Dylan Voss el 14 de Jul. de 2020
Editada: Cris LaPierre el 20 de Jul. de 2020
I am trying to graph this direction field:
x' = (1 1; 4 1)x
This is my code:
a = [1 1;4 1];
x = [x y];
[x,y] = meshgrid(-10:1:10,-10:1:10);
dx = 1;
dy = a.*x.*1;
r = ( dx.^2 + dy.^2 ).^0.5;
u = dx./r;
v = dy./r;
figure
quiver(x,y,u,v);
It returns this error:
ꕋerror: QuiverPlot: product: nonconformant arguments (op1 is 2x2, op2 is 21x21)
error: called from
QuiverPlot at line 5 column 4
I guess my x vector does not have the same dimension as my a vector, even though a has two columns and x has two rows.
As a side note, this problem was given by Boyce and Diprima's textbook with no context regarding the code.
  1 comentario
Dylan Voss
Dylan Voss el 14 de Jul. de 2020
Editada: Cris LaPierre el 14 de Jul. de 2020
I edited my code, putting a semicolon in matrix t (formerly matrix x):
a = [1 1;4 1];
[x,y] = meshgrid(-10:1:10,-10:1:10);
t = [x;y];
dx = 1;
dy = a.*t.*1;
r = ( dx.^2 + dy.^2 ).^0.5;
u = dx./r;
v = dy./r;
figure
quiver(x,y,u,v);
Matrix x is still a 42 by 21 matrix evidently.......??

Iniciar sesión para comentar.

Respuestas (1)

Cris LaPierre
Cris LaPierre el 14 de Jul. de 2020
The issue is with your calculation of dy. Variable a is 2x2, but t is 42x21.
  2 comentarios
Dylan Voss
Dylan Voss el 19 de Jul. de 2020
Why is t 42 by 21?
Cris LaPierre
Cris LaPierre el 20 de Jul. de 2020
Editada: Cris LaPierre el 20 de Jul. de 2020
Because you create it using x and y, specifically placing y directly underneath x, and they are each 21x21. Perhaps take a look at the documentation for meshgrid.

Iniciar sesión para comentar.

Categorías

Más información sobre Data Distribution Plots en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by