Plot a vector field from a matrix

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.

 采纳的回答

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)

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Vector Fields 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by