虽然Kronecker-product出于教学原因(没有使用明显的和容易获得的np.kron()),我获得了一个4维数组作为中间结果,我将重塑以获得最终结果.
但是,我仍然无法围绕重塑这些高维阵列.我有这个4D数组:
array([[[[ 0, 0],
[ 0, 0]],
[[ 5, 10],
[15, 20]]],
[[[ 6, 12],
[18, 24]],
[[ 7, 14],
[21, 28]]]])
Run Code Online (Sandbox Code Playgroud)
这是形状(2, 2, 2, 2),我想重塑它(4,4).有人可能会认为这很明显
np.reshape(my4darr, (4,4))
Run Code Online (Sandbox Code Playgroud)
但是,上述重塑并没有给我预期的结果,即:
array([[ 0, 5, 0, 10],
[ 6, 7, 12, 14],
[ 0, 15, 0, 20],
[18, 21, 24, 28]])
Run Code Online (Sandbox Code Playgroud)
如您所见,预期结果中的所有元素都存在于4D数组中.我根本不能正确地根据需要进行重塑.除了答案之外,如何reshape为这种高维数组做一些解释将是非常有帮助的.谢谢!
我有一个2D矩阵,其中列的№总是3的倍数(例如250×27) -由于结果的重复组织(A,B,C,A,B,C,A,B,C,等等).我希望重新构造这个矩阵以创建一个包含3列的新矩阵 - 每个列包含每种类型的聚合数据(A,B,C)(例如2250×3).
因此,在矩阵中250×27,列中的所有数据1,4,7,10,13,16,19,22,25将被合并以形成所得到的重新形成矩阵的第一列.
生成的重新整形矩阵中的第二列将包含列中的所有数据2,5,8,11,14,17,20,23,26- 依此类推.
在MATLAB中有一个简单的方法吗?我只知道reshape如果我要合并的列是相邻(1,2,3,4,5,6)而不是非相邻(1,4,7,10,13,16)等.