我有一个庞大的复杂数据,通常可以重复地将其写入磁盘或从磁盘读取数据,但是写入仍然可以很快完成,但是读取花费了很长时间。由于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,:,:) );
谢谢!