У меня есть матрица с формой (6,5), определенная как:
blockmat= [[1,1,1,1,1],[4,4,4,4,4], [2,2,2,2,2], [5,5,5,5,5], [3,3,3,3,3], [6,6,6,6,6]]
В Matlab эта строка кода:
for i = 1:2
blockMat(((n*(i-1))+1): (n*i),((n*(i-1))+1): (n*i)) = eye(n) #n=3
дала мне в первой итерации a матрица с формой (6,5) и на 2-й итерации матрица (6,6), однако в python, когда я написал:
for i in range(1,3):
blocMat[3*(i-1): 3*i, 3*(i-1): 3*i]= np.eye(3)
, я получил эту ошибку:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-9-c4459263db11> in <module>
22
23 for i in range(1,3):
---> 24 blocMat[3*(i-1): 3*i, 3*(i-1): 3*i]= np.eye(3)
25
26
ValueError: could not broadcast input array from shape (3,3) into shape (3,2)