I'm relatively new to Python and would appreciate your help!
Suppose I have two square matrices - one large M
and one smaller K
- and an integer array of indices ind
, not necessarily sorted. The length of ind
matches the dimensions of K
. In Octave/MATLAB, I can easily do this:
M(ind, ind) = K
This will distribute all the components of K to those positions of M that correspond to indices ind
. This is often used in Finite Element computations.
Is there a way to do the same thing just as elegantly in Python? You may assume my M
and K
are NumPy arrays that were constructed via the operations:
M = np.zeros((12, 12))
K = np.zeros((6, 6))
I did some work on these matrices and filled them with data. My ind
array is a NumPy array as well.
However, when I do something like
M[ind, ind] = K
I get shape mismatch
as an error. Plugging ind.tolist()
instead of ind
into M
won't change anything.
Thanks for any advice!