Suppose and
are vectors and we want to form the matrix
with elements
. This would correspond to the function
. The matrix
is merely defined by:
W=u.reshape(-1,1) + v
If the vectors and
are
and
respectively, the result is:
array([[2, 3, 4],
[3, 4, 5]])
More generally, suppose that we want to sample the function . Supposing that the vectors
and
are defined, the matrix
of sampled values is obtained with:
W = cos(x).reshape(-1,1) + sin(2*y)
Note that this is very frequently used in combination with ogrid. The vectors obtained from ogrid are already conveniently shaped for broadcasting. This allows for the following elegant sampling of the function :
x,y = ogrid[0:1:3j,0:1:3j] # x,y are vectors with the contents of linspace(0,1,3) w = cos(x) + sin(2*y)
The syntax of ogrid needs some explanation: First, ogrid is not a function. It is an instance...