Why am I only getting partial streamlines.

I am trying to plot streamlines to look like this
But I am only getting part way
I have tried changing my sy and sx multiple times but it just changes what part shows up. I have no idea what I'm doing wrong
Here's my code
%%
[X,Y] = meshgrid(-5:0.5:5);
sx = linspace(-5,5,20);
sy = sx;
% sx = (-5:0.5:5);
% sy = ones(size(sx));
sy = sx./sx;
% [SX,SY] = meshgrid(sx,sy);
%let U = e1 & V = e2
U = Y;
V = X;
figure()
hold on
quiver(X,Y,U,V);
streamline(X,Y,U,V,sx,sy,[0.1,20000]);

 Respuesta aceptada

David Goodmanson
David Goodmanson el 17 de Feb. de 2021
Hi Boris,
the problem is the line sy = sx./sx which creates a vector of ones for sy. Then every streamline originates at the horizontal line sy =1. Here is an example that draws the streamlines orginating from the left side (upper half) and the top side (left half); the remining two sides are similar.
[X,Y] = meshgrid(-5:0.5:5);
sx = linspace(0,5,10);
sx(end) =[]; % eliminate streamlines originating at the corners
sy = sx;
onx = ones(size(sx));
ony = ones(size(sy));
U = Y;
V = X;
figure()
hold on
quiver(X,Y,U,V);
streamline(X,Y,U,V,-5*onx,sy,[0.1,20000]);
streamline(X,Y,U,V,-sx, 5*ony,[0.1,20000]);
hold off

2 comentarios

Boris Chan
Boris Chan el 17 de Feb. de 2021
Oh I see so your answer gives half, so since I have 4 quadrants I have to repeat the streamline function 4x with different parameters?
David Goodmanson
David Goodmanson el 17 de Feb. de 2021
yes, that's right.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Animation en Centro de ayuda y File Exchange.

Productos

Versión

R2020a

Preguntada:

el 17 de Feb. de 2021

Comentada:

el 17 de Feb. de 2021

Community Treasure Hunt

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

Start Hunting!

Translated by