【发布时间】:2017-03-22 05:40:49
【问题描述】:
我有一个非常大的数据集,有数千行和数百列。我尝试交替重塑每第 n 行的数据和所有第 n 行列数据。我试过这样:
in=rand(71760,320);
m=240; n=320;
[R,C]=size(in);
out=[];
R_out=R/m;
for k=1:m %from row 1 to mth row
for i=1:C %reshape every column of mth row
out=[out;reshape(in(k:m:end,i),R_out,1)'];
end
end
如果您尝试代码,它会花费很长时间并且根本没有效率,您甚至都不会费心让它完成。如何提高性能?还是有更好的方法?
更新
这个问题被扩展到另一个线程here,以提高@Teddy提供的reshape answer的性能
【问题讨论】:
-
你的意思是
for k=1:m而不是for k=1:n吗?因为你在行中跨步m(而n是列)。您能否澄清out的预期大小? -
对不起我的错误。已编辑。预期的输出大小将是 (m x C, R/m),对于上述情况,它将是 (76800, 299)