텍스트 파일에서 한 줄을 읽는 MATLAB 스크립트가 있습니다. 텍스트 파일의 각 행에는 CSV의 파일 이름이 들어 있습니다. MATLAB이 작업하고있는 라인을 추적하여 셀 배열에 해당 라인의 데이터를 저장할 수 있어야합니다. 어떻게해야합니까? 설명하기MATLAB이 작업중인 .dat 파일의 행을 찾으십시오.
내 .DAT 파일의 처음 몇 줄은 다음과 같습니다
2006-01-003-0010.mat
2006-01-027-0001.mat
2006-01-033-1002.mat
2006-01-051-0001.mat
2006-01-055-0011.mat
2006-01-069-0004.mat
2006-01-073-0023.mat
2006-01-073-1003.mat
2006-01-073-1005.mat
2006-01-073-1009.mat
2006-01-073-1010.mat
2006-01-073-2006.mat
2006-01-073-5002.mat
2006-01-073-5003.mat
내가 O3_data
의 다른 셀에이 .mat
각 파일에서 변수 site_data
을 저장해야합니다. 따라서 O3_data{1}
은 텍스트 파일의 첫 번째 줄에있는 데이터이고, O3_data{2}
은 두 번째 줄의 데이터입니다.
이 코드는 작동하지만 카운터를 사용하지 않아도됩니다. 내가 MATLAB 내가 난 내용이 무엇인지 알 수 없도록 Subscript indices must either be real positive integers or logicals.
nt
정수라고 말해 된 time index
부분을 추가하는 경우
year = 2006:2014;
for y = 1:9
flist = fopen(['MDA8_' num2str(year(y)) '_mat.dat']); % Open the list of file names - CSV files of states with data under consideration
nt = 0; % Counter will go up one for each file loaded
while ~feof(flist) % While end of file has not been reached
fname = fgetl(flist);
disp(fname); % Stores name as string in fname
fid = fopen(fname);
while ~feof(fid)
currentLine = fgetl(fid);
load (fname, 'site_data'); % Load current file. It is all the data for one site for one year
O3_data = site_data;
% Do other stuff
end
fclose(fid);
end
fclose(flist);
end
: 나는 단지 내가에서 읽고 있어요 파일 중 하나에 대한 데이터를 얻을 수 잘못하고있다. 내가 필요로하는 time index
나는 O3_data {난}하는 각 i
내가에서 읽고 있어요 파일 중 하나입니다
year = 2006:2014;
for y = 1:9
flist = fopen(['MDA8_O3_' num2str(year(y)) '_mat.dat']); % Open the list of file names - CSV files of states with data under consideration
nt = 0;
while ~feof(flist) % While end of file has not been reached
fname = fgetl(flist);
fid = fopen(fname);
while ~feof(fid)
currentLine = fgetl(fid);
nt = nt+1; % Time index
load (fname, 'site_data'); % Load current file. It is all the data for one site for one year
O3_data{nt} = site_data;
% Do other stuff
end
fclose(fid);
end
fclose(flist);
end
{시도 끝에 + 1} = site_data'는 초기 '으로 정의 된 곳 O3_data = {}'그런데 – Amro
, 두 번째 while 루프 'fname'은 바뀌지 않으므로 동일한 데이터를 반복해서로드합니다 .. – Amro
나는 믿을 수 없습니다. .dat 파일에는 1000 가지가 넘는 CSV 파일의 파일 이름이 들어 있습니다. 내가 때마다 다른 CSV 파일에서'site_data'에서로드 오전 믿습니다. – shizishan