【发布时间】:2017-02-22 06:46:27
【问题描述】:
我有一个文本文件(5 列“\t”分隔)正在被另一个软件写入。我需要从文件中读取读数并进行一些计算。是否有一种方法是读取添加到文件中的新行并对其进行处理,然后对每组新行再次重复。只要它完成工作,我不介意一点延迟。
我的想法是开始逐行读取文件,直到文件结束,然后它将从上次停止的位置读取,直到文件的新结尾......等等。 这可以在matlab中完成吗?我可以指定文件读取的起始行吗?我也可以更新文件结束点吗?
为了防止循环在 eof 点中断,我认为我应该将循环设置为由时间或其他任何东西控制,同时它应该在每次迭代结束时检查 eof。
我主要使用 Matlab,但如果有更好的选择用于此目的(我可以合理地学习),请随时指导我。
Edit1:我已尝试按照您的建议使用 dlmread,当我在循环外读取文件时,即使我更改 R1 并且其他软件更新文本,它也会正确读取文件。但是,当我把它放在一个循环中时,我得到了这个错误: 使用 dlmread 时出错(第 143 行) 文件末尾不支持空格式字符串。
这是我多次阅读的代码:
clear all
x=0;
R1=0; C1=0;
while(x<10)
M = dlmread('tst_4.txt','\t',R1,C1);
R1=length(M);
x=x+1;
end
谢谢
【问题讨论】:
-
您可以尝试使用
dlmread,并根据您上次读取的文件指定读取数据的范围。
标签: matlab