在matlab中,我想从一个结构化的,相当大的文件(大小:18 + 2048 * 2048字节)中读取,其中18个第一字节分配给头,其余的是像素图像强度。 这里关心的是速度。正如您在下面的代码中看到的那样,对文件的多次访问显着降低了性能。 你能建议从文件中读取这些内容的更快速的方式吗?例如使用“fread”函数从缓冲区中读取整个事物。在Matlab中读取一个大的结构化文件
fid = fopen(fileName, 'r', 'b'); % 'r' readonly and 'b' big endian
a= fread(fid,1,'uint16');
b1= fread(fid,1,'uint32');
b2= fread(fid,1,'uint32');
c1= fread(fid,1,'uint32');
c2= fread(fid,1,'uint32');
img=zeros (...
for i= (b1 + 1) : (b2 + 1)
for j= (c1 + 1) : (c2 + 1)
img(i, j) = fread(fid,1,'uint16');
end
end
请注意方向 – Nzbuu 2012-01-31 16:04:09