Filter löschen
Filter löschen

Plot a vector field from a matrix

11 Ansichten (letzte 30 Tage)
Samuel Curé
Samuel Curé am 15 Dez. 2020
I would like to plot a field of unit vectors on a square lattice Λ of size .
Each point of the lattice is a unit vector pointing in some angle: where θ is a matrix whose entries are between 0 and .
Here is my attempt:
N=100
theta=2*pi*rand(N,N) % random for this example only
[X,Y]=meshgrid(1:N,1:N)
U=cos(theta)
V=sin(theta)
quiver(X,Y,U,V)
However this is not very esthetic, how could I make this vector field more readable?
(Even when I choose a configuration where all spins are aligned, it is still not readable)
Perhaps spacing the arrows and making them bigger with a longer shaft could make it more readable? I am quite new on MATLAB and I have no idea how to change this. Plotting this from my matrix theta felt already like an accomplishement.
Thank you for your help and your time.

Akzeptierte Antwort

Asad (Mehrzad) Khoddam
Asad (Mehrzad) Khoddam am 15 Dez. 2020
You can use a scale like this:
N=100;
theta=2*pi*rand(N,N); % random for this example only
[X,Y]=meshgrid(1:N,1:N);
U=cos(theta);
V=sin(theta);
quiver(X,Y,U,V,0.3)

Weitere Antworten (0)

Kategorien

Mehr zu Vector Fields finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by