操作在一个三维数组的第一个维度

2视图(30天)
f10w
f10w 2014年5月29日
编辑: 马特·J 2014年5月29日
我有一个三维数组M (d * d, M, n)。为每个d * d M的向量(即向量的第一个维度),我把它分割为d部分,每个部分的总和形成一个新的向量(d)大小。例如,如果你是一个向量的第一个维度,然后它将取代向量v,计算:
v =总和(重塑(u, d, d)) ';
目前我使用一个循环后,但我认为应该有一个更快的方法。
N = 0 (d, m, N)
i = 1: m
j = 1: n
N (:, i, j) =总和(重塑(M (:, i, j), d, d)) ';
结束
结束
感谢你的任何建议!

接受的答案

马特·J
马特·J 2014年5月29日
编辑:马特·J 2014年5月29日
看起来像米应该是一个四维数组从一开始,
M =重塑(M, d, d, M, n);
N = (M, 2)总和;
1评论
马特·J
马特·J 2014年5月29日
编辑:马特·J 2014年5月29日
Khue评论道:
谢谢。但是N = (M, 2)将和4 d数组,对吧?我回答:
N =挤压(总和(重塑(M, d, d, M, N)))
你的想法是一样的。
再次感谢。

登录置评。

更多的答案(0)

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!