【发布时间】:2014-12-03 14:32:25
【问题描述】:
我正在尝试将一种结构化文本文件读入 MatLab。内容如下:
Header
Result Damage "Load Analysis" 0.002000000 Vector OnNodes
ComponentNames "DN", "DT"
Values
1 0.00000000E+00 0.00000000E+00
2 0.00000000E+00 0.00000000E+00
3 0.00000000E+00 0.00000000E+00
4 0.00000000E+00 0.00000000E+00
End Values
Result Damage "Load Analysis" 0.004000000 Vector OnNodes
ComponentNames "DN", "DT"
Values
1 0.00000000E+00 0.00000000E+00
2 0.00000000E+00 0.00000000E+00
3 0.00000000E+00 0.00000000E+00
4 0.00000000E+00 0.00000000E+00
End Values
这些值会以块的形式不断重复。对于文件中的每个块,我只需要从重复块内的行中读取这 3 个值。我想到了这样的代码:
fid=fopen('FileName.res');
while ~feof(fid)
tline = fgetl(fid);
if ischar(strtrim(tline)) == 1
continue
else
%command to put the values within a matrix of kind A[inf,3]
end
end
第一个问题是,当涉及到实际是数字的行时,命令 ischar 返回 1 作为值。这样我仍然无法进入将数字放入矩阵的第二部分。关于这些问题有什么想法吗?
【问题讨论】:
-
fgetl的输出总是一个字符数组,除非该行只包含一个换行符。一个建议是调整你的逻辑,而不是寻找“价值”并阅读,直到看到“最终价值”