I'd like to multiply two matrices (to be clear I want it in the linear algebra meaning of the word, i.e., if you want further clarification of what I mean see this [Wikipedia article](https://en.wikipedia.org/wiki/Matrix_multiplication#Matrix_product_.28two_matrices.29)) I've tried `A * B` (which I got by following the MATLAB to Numpy guide at [Scipy Wiki](http://wiki.scipy.org/NumPy_for_Matlab_Users)) but when `A` had dimensions of (N-1)x(N-1) and `B` had dimensions of (N-1)x(N+1) it gave out the ValueError (where `N=100`):

```
ValueError: operands could not be broadcast together with shapes (99,99) (99,101) 

```

I also tried `np.dot(A,B)` in case I was unintentionally using an array (ps. this could be the case, as I do have a few np.asarray commands for the vectors I built A and B from. How do I convert them to matrices?) and not a matrix and got the same result. 

This is my code in full (granted A and B are replaced by `np.diag(xasub)` and `np.sin...`, respectively and this is on the `d2Tsub` line)

```
import numpy as np
import scipy.special as sp

N = 100
n = range(0,N+1)
xmin = -10
xmax = 5

pi = np.pi
x = np.cos(np.multiply(pi / float(N), n))

xa = np.asarray(x)
xasub = xa[1:N]

xc = (1+xa)*(xmax-xmin) / float(2)
xcsub = xc[1:N]

na = np.asarray(n)
nd = np.transpose(na)

T = np.cos(np.outer(np.arccos(xa),nd))
Tsub  = T[1:-1]

from numpy import linalg as LA

dT = np.sin(np.outer(np.arccos(xa),nd))*na
dTsub = dT[1:-1]

d2Tsub = np.diag(np.power((xasub*xasub-1),-1)) * (Tsub*nd - np.diag(xasub) * np.sin(np.outer(np.arccos(xasub),nd))) * nd

```