linspace
generates linearly spaced numbers between 2 reached bounds
Syntax
row = linspace(x1, x2) row = linspace(x1, x2, n) Matrix = linspace(Col1, Col2) Matrix = linspace(Col1, Col2, n)
Arguments
- x1, x2
Real or complex scalars, or encoded integer scalars: Bounds between which values must be generated.
- Col1, Col2
Column vectors of real or complex numbers, or of encoded integers, of same heights.
- n
integer number of requested values or columns. Default value: 100
- row
row vector of
n
numbers.- Matrix
Matrix with
n
columns of numbers.
Description
linspace(x1, x2)
generates a row vector of n
equally spaced
values ranging exactly from x1
to x2
.
The syntax Instead of fixing the step to a given value, |
If x1
or x2
are complex numbers,
then linspace(x1,x2)
interpolates separately the real and
the imaginary parts of x1
and x2
.
If some column vectors Col1
and Col2
are provided, linspace
works in a row-wise way:
the resulting Matrix
has the same number of rows,
and n
columns. We get
Matrix(i,:) = linspace(Col1(i), Col2(i), n)
.
When specified bounds are encoded integers, the actual step may vary by one unit
along the generated series. |
Examples
linspace(1, %pi, 0) // n = 0 linspace(1, 2, 10) // x2 > x1 : increasing values linspace(2, 1, 10) // x2 < x1 : decreasing values linspace(1+%i, 2-2*%i, 5) // with complex numbers linspace([1:4]', [5:8]', 10) // with input columns
--> linspace(1, %pi, 0) // n = 0 ans = [] --> linspace(1, 2, 10) // x2 > x1 : increasing values ans = 1. 1.111 1.222 1.333 1.444 1.556 1.667 1.778 1.889 2. --> linspace(2, 1, 10) // x2 < x1 : decreasing values ans = 2. 1.889 1.778 1.667 1.556 1.444 1.333 1.222 1.111 1. --> linspace(1+%i, 2-2*%i, 5) // with complex numbers ans = 1. +i 1.25 +0.25i 1.5 -0.5i 1.75 -1.25i 2. -2.i --> linspace([1:4]', [5:8]', 10) // with input columns ans = 1. 1.444 1.889 2.333 2.778 3.222 3.667 4.111 4.556 5. 2. 2.444 2.889 3.333 3.778 4.222 4.667 5.111 5.556 6. 3. 3.444 3.889 4.333 4.778 5.222 5.667 6.111 6.556 7. 4. 4.444 4.889 5.333 5.778 6.222 6.667 7.111 7.556 8.
With encoded integers: The step may vary by one unit along the series:
--> x = linspace(int8([5;127]), int8([127;5]), 10) ans = 5 18 32 45 59 72 86 99 113 127 127 114 100 87 73 60 46 33 19 5 --> x(:,1:$-1) - x(:,2:$) ans = -13 -14 -13 -14 -13 -14 -13 -14 -14 13 14 13 14 13 14 13 14 14
// shape interpolation between a sphere and a cone [T,P]=meshgrid(linspace(0,2*%pi,32),linspace(-%pi/2,%pi/2,32)); X=cos(T).*cos(P); Y=sin(T).*cos(P); Z=linspace(sin(P),cos(P)-1,100); h=uicontrol("style","slider","units","normalized",... "position",[0.2 0.03 0.6 0.05],"min",1,"max",100,... "callback",... "drawlater;delete(gca().children);mesh(X,Y,Z(:,:,h.value));isoview;drawnow") execstr(h.callback)
See also
History
Version | Description |
5.4.0 |
|
6.0 |
|
6.0.2 | linspace() can now be reliably used for series of encoded integers. |
Report an issue | ||
<< eye | Matrix generation | logspace >> |