我在下面使用xcorr
simM=xcorr(data,10,'normalized');
这里的数据是1200 * 1200的双精度,输出即simM是21*1440000的双精度。现在我想计算更多的值,但是我的。系统内存只有64 GB。对于大于1500 * 1500的数据,系统给出内存不足错误。这是可以接受的。所以根据我在MATLAB社区读到的一些答案,我发现分裂矩阵是一种选择。但是你能告诉我怎么做吗?对于1100 × 1100的样本,我的系统消耗的时间是147秒,如果可能的话,你能建议一个提高速度的方法吗?
循环d
for i=1:1200
for j=1:1200
simulation((i-1)*1200+j)=xcorr(d(:,i),d(:,j),10,'normalize');
end
end
表示速度,将double转换为single, (single(d))可以减少内存使用和计算时间,您可以使用parfor或gpu计算来进一步加快for循环。
d=single(d);
d=gpuArray(d);
...