这里要读的档案属于中等体积。
也就是很大,但内存还够整个加载那种。
我有些资料档为纯文字,格式如下
0 0.00062 -0.00719
0.00025 -0.00938 0.01125
0.0005 -0.03875 0.03156
由于这个txt档大小有260MB,包含 10015744 * 3 的矩阵。
所以我用load会非常慢。
推测是因为矩阵大小为动态增加。matlab 会不断消耗时间于要求内存上。
下面是我用桌电经由区网取得笔电上的数据。
(简单说就是读档速度较慢,运算较快)
在笔电上load mat 档一样是3s,但load txt 则是61s
% load mat
>> tic;data1=load('filename.mat');toc
Elapsed time is 3.642629 seconds.
% load text
>> tic;data2=load('filename.txt');toc
Elapsed time is 23.262854 seconds.
% load text by other method.
>> tic;tmp_s=fread(fid,inf,'uint8=>char');toc; ...
data_col_num=numel(sscanf(strtok(tmp_s,char(10)),'%f'));toc; ...
data3=sscanf(tmp_s,'%f',[data_col_num,inf])';toc; ...
clearvars tmp_s;toc
Elapsed time is 1.350866 seconds.
Elapsed time is 1.372573 seconds.
Elapsed time is 6.864294 seconds.
Elapsed time is 6.946270 seconds.