比如我们有这样一个n行的文本 你想一下子把第n行读出来 可以怎么做呢
C语言告诉我们 我们要
fid=fopen('test.txt'); % 打开test.txt文件
while ~feof(fid) % 判断是否为文件末尾
tline=fgetl(fid); % 从文件读行
......
这样依次读下去 第n行总有一天会读到的 只要n~=1e+inf
但是有没有简单点的办法呢 有的 比如就读txt的第3行
data=textscan(fid,'%q',1,'headerlines',2,'delimiter',''); %(
matlab里认为txt从第0行开始 所以txt的第3行实际上对应是2)
运行data{1}{1} 看看是不是你想要的第3行啊
不过有人会试着再运行一次 data=textscan(fid,'%q',1,'headerlines',2,'delimiter','');
怎么读出来的是第5行了 这是因为第一次读取时文本指针已经跳到第三行结尾了 为了避免发生这种不理想的结果
我们需要把指针归零 也就是回到文件头 fseek(fid, 0, -1) 这样才能顺利的随便读取文本的内容
任意行都能读了的话 那么任意行中的某个元素大家也就会读了吧
其实我们主要是应用了textscan这个命令迅速的跳转了指针到我们需要的内容
那么 如果我精确的知道我要的东西在哪里 我们可以直接跳转指针 比如当前位置为文件头 而东西的具体位置为350 则执行 fseek(fid, 350, 0)
然后 fgetl(fid) 看看 是不是你要的东西啊
0