% 定义结构体类型
fields = {'site', 'epoch', 'trotot', 'sig_trotot', 'trwet', 'sig_trwet', ...
'tgetot', 'sig_tgetot', 'tgntot', 'sig_tgntot', 'wvapor', 'sig_wvapor', ...
'mtemp', 'sig_mtemp'};
types = cellfun(@(x) 'double', fields, 'UniformOutput', false);
structType = struct('fields', fields, 'types', types);
% 初始化结构体数组
dataStructs = repmat(structType, 0, 1);
% 解析文件
filename = '0AB1.2009.362.trop'; % 替换为您实际的文件名
fid = fopen(filename, 'r');
if fid == -1
error('Failed to open file.');
end
currentSection = '';
lineNumber = 0;
while ~feof(fid)
lineNumber = lineNumber + 1;
line = fgetl(fid);
if startsWith(line, '+') || startsWith(line, '-') || startsWith(line, '*')
currentSection = line(2:end);
elseif ~isempty(currentSection) && ~isempty(line)
tokens = strsplit(line, ' ');
% 创建新结构体并填充数据
newStruct = struct();
for i = 1:length(fields)
field = fields{i};
value = str2double(tokens{i});
if isnan(value)
value = [];
end
newStruct.(field) = value;
end
% 将新结构体添加到数组中
dataStructs(end+1) = newStruct;
end
end
fclose(fid);
% 打印前几条记录检查数据
disp('First few records:');
for i = 1:5
disp(dataStructs(i));
end
运行代码时出现这样的错误怎么解决?