在Matlab中读取复数二进制文件的更快方法

时间:2018-12-05 05:58:37

标签: matlab optimization

我有一个庞大的复杂数据,通常可以重复地将其写入磁盘或从磁盘读取数据,但是写入仍然可以很快完成,但是读取花费了很长时间。由于m.Data(:)的整形方式,这应该就是为什么要花很长时间的原因。有没有更好的选择来改善工作方式?

complexNum=zeros(500,500,2000);
for i=1:2000
      complexNum(:,:,i)=complex(rand(500,500), rand(500,500));
end

%write

fileID = fopen(complexNum.bin,'w');
fwrite(fileID, reshape([real(complexNum);imag(complexNum)],[],1), 'double');
fclose(fileID);

%read

m = memmapfile('complexNum.bin', 'Offset', 0, 'Format', {type, [500*2, 500, 2000] 'x'});
complexNum_read = complex(m.Data(:).x(1:500,:,:), m.Data(:).x(500+1:end,:,:) );

谢谢!

0 个答案:

没有答案