0
私はテキストファイルを読み込もうとしています。日付の列があります。日付列のファイルの一部のフォーマットはDD-MMM-YYYY
で、それ以外の場合はDD-MM-YYYY
です。私は最初のスタイルを読むようにコードを設定しました。しかし、そのために、2番目の型に実行された場合、コードはファイルを読み取ることができないので停止します。どうすればいいですか?If the
textscan doesn't work, try this second way
?Textscan - エラーをキャッチして何かを試してみてください
for n = 1:length(data1{id})
fname1 = char(data1{id}(n));
delimiter = '\t';
startRow = 2;
formatSpec = '%s%f%f%f%s%s%s%s%{dd-MMM-yyyy}D%s%s%f%f%f%f%f%f%s%s%s%s%s%s%s%s%f%f%[^\n\r]';
fileID = fopen(fname1,'r');
dataArray = textscan(fileID, formatSpec, 'Delimiter', delimiter, 'EmptyValue' ,NaN,'HeaderLines' ,startRow-1, 'ReturnOnError', false, 'EndOfLine', '\r\n');
fclose(fileID); % Close the text file.
PM25_1{id}{n} = table(dataArray{1:end-1}, 'VariableNames', {'MonitorID','POC','Latitude','Longitude','Datum','ParameterName','SampleDuration','PollutantStandard','DateLocal','UnitsofMeasure','EventType','ObservationCount','ObservationPercent','ArithmeticMean','FirstMaxValue','FirstMaxHour','AQI','MethodName','LocalSiteName','Address','StateName','CountyName','CityName','CBSAName','DateofLastChange','DateNum','NumberOfPOCs'});
clearvars filename delimiter startRow formatSpec fileID dataArray ans;
end
ありがとうございました。これは機能します。私はそれを読む前に 'if/else'節で日付列の形式をチェックする方法はありますか? – shizishan
@shizishanできません。私は2行目のみを読み、日付文字列を抽出し、その形式を決定することをお勧めします。そのフォームを文字列として保存し、指定されたフォーマットでファイル全体を読み込みます。 – Adriaan
自分で見ることなく日付文字列の形式を決定するにはどうすればよいですか? – shizishan