我想读取每行中包含数字的文件。以下是文件格式的示例 -
boundary-points-x: 0.00 5.00
boundary-points-y: 0.00 0.10 0.20 0.30 4.90
boundary-points-z: 0.00 1.00 2.00 3.00 4.00 5.00
文字文本后面的数字是我想要阅读的元素。每行包含不同数量的元素,每行中的元素数可能会因文件而异。因此,不可能使用文本扫描以相同的格式读取。有什么办法可以解决吗?谢谢!
答案 0 :(得分:0)
使用regexp
来解析该行:
fid = fopen('/path/to/file.txt', 'r');
line = fgetl(fid);
while ischar(line)
res = regexp(line, '\s+(\d*\.?\d*)', 'tokens');
literals = cellfun(@str2double, res); % you have this line's literals. You decide what to do with them...
line = fgetl(fid);
end
fclse(fid);
您可以看到here关于正则表达式的解释以及解析您的行如何工作的示例。你也可以在那里玩正则表达式。