如何用Numpy将多个4×4矩阵添加至6×6零矩阵指定位置
矩阵拼接优化需求
我有多个4×4矩阵,需要将这些矩阵的部分元素添加到最终的6×6零矩阵的指定坐标位置。之前考虑用np.zeros生成6×6矩阵后做切片赋值,但觉得这个操作太繁琐。
具体要求:
- 矩阵1需要放入6×6矩阵的左上角4×4区域
- 矩阵2需要拆分后放入6×6矩阵的四个指定2×2区域
- 最终将两个处理后的矩阵叠加得到目标6×6矩阵
以下是我目前写的代码:
import numpy as np from math import sqrt # 元素1 C_1= 3/5 S_1= 4/5 matrix_1 = np.matrix([[C_1**2, C_1*S_1,-C_1**2,-C_1*S_1],[C_1*S_1,S_1**2,-C_1*S_1,-S_1**2], [-C_1**2,-C_1*S_1,C_1**2,C_1*S_1],[-C_1*S_1,-S_1**2,C_1*S_1,S_1**2]]) empty_mat1 = np.zeros((6,6)) empty_mat1[0:4 , 0:4] = empty_mat1[0:4 ,0:4] + matrix_1 #print(empty_mat1) # 元素2 C_2 = 0 S_2 = 1 matrix_2 = 1.25*np.matrix([[C_2**2, C_2*S_2,-C_2**2,-C_2*S_2],[C_2*S_2,S_2**2,-C_2*S_2,-S_2**2], [-C_2**2,-C_2*S_2,C_2**2,C_2*S_2],[-C_2*S_2,-S_2**2,C_2*S_2,S_2**2]]) empty_mat2 = np.zeros((6,6)) empty_mat2[0:2,0:2] = empty_mat2[0:2,0:2] + matrix_2[0:2,0:2] empty_mat2[4:6,0:2] = empty_mat2[4:6,0:2] + matrix_2[2:4,0:2] empty_mat2[0:2,4:6] = empty_mat2[0:2,4:6] + matrix_2[2:4,2:4] empty_mat2[4:6,4:6] = empty_mat2[4:6,4:6] + matrix_2[0:2,0:2] print(empty_mat1+empty_mat2)
内容的提问来源于stack exchange,提问作者Elta
相关产品推荐
相关产品推荐

