2D vector field plot
champ(x, y, fx, fy, [arfact, rect, strf]) champ(x, y, fx, fy, <opt_args>)
two vectors which define the grid.
a matrix which describes the x component of the vector
field. fx(i,j)
is the x
component of the vector field at point
(x(i),y(j))
.
a matrix which describes the y component of the vector
field. fy(i,j)
is the y component of
the vector field at point (x(i),y(j))
.
This represents a sequence of statements
key1=value1, key2=value2
,... where
key1
, key2
,... can
be one of the following: arfact
,
rect
, strf
(see below).
an optional argument of type real
which gives a scale factor for the display of the arrow
heads on the plot (default value is
1.0
).
a vector rect=[xmin, ymin, xmax, ymax]
which gives the boundaries of the graphics frame to use.
a string of length 3 "xyz" which has the same meaning as
the strf
parameter of
plot2d
. The first character
x
has no effect with
champ
.
champ
draws a 2D vector field. The length of
the arrows is proportional to the intensity of the field.
If you want colored arrows with the color of the arrows depending on
the intensity of the field, set gce().colored = "on"
.
Enter the command champ()
to see a demo.
Be cautioned about the fact that using meshgrid function before
using champ
requires adjustment. For more details, see the last example below.
// using rect as plot boundaries champ(-5:5,-5:5,rand(11,11),rand(11,11),rect=[-10,-10,10,10],arfact=2) | ![]() | ![]() |
// using (x,y) to get boundaries clf() champ(-5:5,-5:5,rand(11,11),rand(11,11),2,[-10,-10,10,10],"021") | ![]() | ![]() |
// using meshgrid to get fx and fy clf() x = linspace(-1,1,30); y = linspace(-1,1,30); [X,Y] = meshgrid(x,y); fy = 2.*Y; fx = 2.*X; champ(x,y,fx',fy'); //here we have transposed fx and fy | ![]() | ![]() |