It is not possible to automatically broadcast a vector v of length n to the shape (n,m). This is illustrated in Figure 5.2.
Figure 5.2: Failure of broadcasting due to shape mismatch
The broadcasting fails, because the shape (n,) may not be automatically broadcast to the shape (m, n). The solution is to manually reshape v to the shape (n,1). The broadcasting will now work as usual (by extension only):
M + v.reshape(-1,1)
This is illustrated by the following example.
Define a matrix with:
M = array([[11, 12, 13, 14], [21, 22, 23, 24], [31, 32, 33, 34]])
and a vector with:
v = array([100, 200, 300])
Now automatic broadcasting will fail because automatic reshaping does not work:
M + v # shape mismatch error
The solution is thus to take care of the reshaping manually. What we want in that case is to add 1 on the right, that is, transform the vector into a column matrix. The broadcasting...