我正在尝试从txt文件导入数据到matlab,长度约为1e6行。
文本如下:
[04 05 11 12] jiffies=100
[04 06 15 09] jiffies=3455
.
.
.
[00 02 07 07] jiffies=111200
我设法在不使用循环的情况下提取前两个数字(我需要);
现在我想只阅读“jiffies =#”之后的数字,如果我想尝试使用相同的方法
textscan(fid,'%s','delimiter', 'jiffies=')
但它不起作用,没有使用循环的任何方法?
答案 0 :(得分:4)
您可以使用星标*
跳过值。
文件中所有数据的完整格式字符串是
'[%d %d %d %d] jiffies=%d'
要跳过前面的所有数字,只需在%
和d
之间添加一个星标。
C = textscan(fid,'[%*d %*d %*d %*d] jiffies=%d');
返回
C{1}
ans =
100
3455
111200
答案 1 :(得分:0)
如果要一次导入所有数据,可以在导入工具中打开此文件:
uiimport(filename);
这将正确删除括号和' jiffies ='文本,并可以返回所有数字的数字数组。您还可以从导入工具生成代码(单击“导入选择”下拉列表/生成脚本或函数)。这可能比直接使用文本扫描更好地处理文件中的任何错误。