나중에 출력 할 수 있도록 CSV 파일에 출력을 저장하는 스크립트를 작성했지만 데이터를 가져 오는 두 번째 스크립트는 다시 읽는 데 시간이 오래 걸립니다.MATLAB에서 CSV 파일을 가장 빨리 가져 오는 방법
데이터는 다음과 같은 형식이다
헤더는 가장 왼쪽 컬럼에있는Item1,val1,val2,val3
Item2,val4,val5,val6,val7
Item3,val8,val9
, 데이터 값은 행의 나머지를 차지한다. 하나의 큰 어려움은 데이터 값의 배열이 각 테스트 항목마다 다른 길이가 될 수 있다는 것입니다. 구조로 저장 하겠지만 MATLAB 환경 외부에서 편집 할 수 있어야합니다. 때로는 MATLAB이 설치되지 않은 컴퓨터에서 잘못된 데이터 행을 삭제해야하기 때문입니다. 그래서 정말로, 제 질문 중 하나는 : 다른 형식으로 데이터를 저장해야합니까? 질문의
두 번째 부분 : 나는 importdata, csvread 및 dlmread을 시도했습니다,하지만 난 가장 적합한 확실하지 않다, 또는 더 나은 솔루션이 있다면. 지금은 루프를 사용하여 내 자신의 스크립트를 사용하고 있습니다. fgetl은 대용량 파일의 경우 대단히 느립니다. 어떤 제안?
function [data,headers]=csvreader(filename); %V1_1
fid=fopen(filename,'r');
data={};
headers={};
count=1;
while 1
textline=fgetl(fid);
if ~ischar(textline), break, end
nextchar=textline(1);
idx=1;
while nextchar~=','
headers{count}(idx)=textline(1);
idx=idx+1;
textline(1)=[];
nextchar=textline(1);
end
textline(1)=[];
data{count}=str2num(textline);
count=count+1;
end
fclose(fid);
(I이 아마 몹시 작성 코드를 알고 - 내가 날 소리하지 마십시오 엔지니어가 아닌 프로그래머 해요 -. 개선을위한 제안, 그래도 환영받을 것)
strtok 추천 +1 - 전에 존재하지 않았다. – Doresoom