我想打开多个日志文件,并将它们连接起来,以便它们创建一个大的日志文件,然后我可以从中提取所需的信息。
我希望matlab打开尽可能多的文件,就像我的文件夹中一样,基于包含某个字符串的名称。
到目前为止,这是我的代码:
pilotfiles = dir (['*PILOT*.log'])
for fil=1:length(pilotfiles)
files{fil}=pilotfiles(fil).name;
end;
files=char(files);
for fil = 1:length (files (:,1));
clear logs;
file_name = files (fil,:);
noofColumns = 45;
cs = repmat('%s', 1, noofColumns);
fileID = fopen(deblank(file_name));
logs = textscan(fileID,cs);
biglog = horzcat (logs {:});
fclose (fileID);
end
当然,如果代码有效,我不会问这个问题。
file_name正确返回我所有文件的名称,'logs'似乎读取了每个文件的内容,但是我的'biglog'只包含最后一个日志文件的内容。
任何人都有任何想法我在哪里犯错?
注意:我正在使用MAC,此代码基于代码,该代码已在PC上运行
答案 0 :(得分:0)
pilotfiles=dir('*PILOT*.log');
pilotfiles=pilotfiles(3:end);
N=numel(pilotfiles);
logs=cell(1,N);
cs=repmat('%s',1,45);
for i=1:N
fid=fopen(fullfile(pilotfiles(i).folder,pilotfiles(i).name));
logs{i}=textscan(fid,cs);
logs{i}=[logs{i}{:}];
fclose(fid);
end
biglog=[logs{:}];
干杯。