약 400KB의 데이터 파일을 약 4000 개 읽어야합니다. 데이터는 나중에 분석되어 파일을 데이터 구조에 기록합니다. 가져 오기 작업은 약 4 분이 걸리고 나는 importdata
과 dlmread
도 시도했지만 그다지 차이는 없습니다.matlab에 여러 개의 큰 파일을 가져 오는 빠른 방법
루프, 가져 오기 기능 또는 Matlab이 여러 개의 대용량 파일을 가져 오는 속도가 느린 경우 알려주십시오. catch
/try
이 파일 중 일부는 제대로 읽을 수 없기 때문에 사용되지만 스크립트가 느려지지는 않습니다.
다음은 스크립트의 :
for k=40020:10:75000
try
name=['tmp' sprintf('%d',k)];
c=c+1;
m(k).count=k;
m(k).col=load(name);
[val in]=find(m(k).col(:,5)~=1);
m(k).id=m(k).col(val,1);
m(k).posx=m(k).col(val,2);
m(k).posy=m(k).col(val,3);
m(k).posz=m(k).col(val,4);
catch
disp(['Error'])
end
end
어떤 파일이 있습니까? 숫자가있는 텍스트 파일? 'M '을 미리 배정 하시겠습니까? – Daniel
실행을 느리게하는 행을 확인하려면 MATLAB Profiler를 사용하여 명령을 실행해야합니다. 만약 실제로 느려지는 파일을 읽는다면 (나는 그것이 의심 스럽다),'load' 명령을 가진 라인이 병목 현상으로 나타나야한다. – MrAzzaman
루프 변수'k'는 순차적이지 않습니다 (점프가 10입니다). 그래서'm' 배열은 실제로 매우 희소합니다. – Shai