我有一个装满文件的文件夹。每个文件的最左边一列是日期。有些文件有yyyymmdd
日期,有些文件有mm/dd/yyyy
日期。我想将函数minutebars1()
应用于yyyymmdd
类型,并将函数minutebars2()
应用于mm/dd/yyyy
类型。我尝试使用 if 语句来执行此操作,试图说明,在遍历所有文件的 for 循环中,如果 textscan 以给定格式成功读取,则应用正确的函数。但是,下面发布的代码不起作用,给我一个Badly formed format string
textscan 行的错误。这应该如何正确完成?
% reads all file names
fPath = uigetdir('.', 'Select directory containing CSV files');
if fPath==0, error('no folder selected'), end
fNames = dir( fullfile(fPath,'*.csv') );
fNames = strcat(fPath, filesep, {fNames.name});
% process each file
for i=1:length(fNames)
fid = fopen(fNames{i},'rt');
if textscan(fid, '%i,%d:%d:%*d.%*d,%f,%d,%*c') % minutebars1() for format 1
minutebars1(fNames{i});
end
if textscan(fid, '%d/%d/%d,%d:%d:%d,%f,%d,%*c') % minutebars2() for format 2
minutebars2t(fNames{i});
end
fclose(fid);
end