hylovegj 发表于 2010-11-25 10:25:45

读取数据时如何跳过若干行

如题,在用MATLAB提取文本文件中的数据时如何跳过若干行。我知道textscan函数可以用HeaderLines参数跳过文件开头的若干行。如果需要读取的行有明显区别与不需要读取的行的特征,可以采用匹配的方法来跳过。我需要的是不进行匹配而将文件指针跳过任意位置处开始的若干行的方法。请高手指点!在线等。。。

chenzhian 发表于 2010-11-25 10:39:43

那你就就用循环语句来读取呗,用fgetl,再用判断语句去排除你不想要的几行,不就可以啦。

hylovegj 发表于 2010-11-25 12:00:25

那你就就用循环语句来读取呗,用fgetl,再用判断语句去排除你不想要的几行,不就可以啦。
chenzhian 发表于 2010-11-25 10:39 http://forum.simwe.com/images/common/back.gif
谢谢回帖!但不是我需要的答案!也许是我表述得不够清楚。

zhouyang664 发表于 2010-11-25 23:44:39

能不能通过判断读到几个'\n'字符来判断跳过几行?

qibbxxt 发表于 2010-11-26 08:43:14

你把具体的问题贴出来,大家方便编写程序

hylovegj 发表于 2010-11-26 11:29:45

本帖最后由 hylovegj 于 2010-11-26 11:30 编辑

因为显示空间有限,直接贴出数据会改变对齐方式,故以附件的形式上传。
以附件为例,如何将文件指针跳到第260行的S T R E S S E S   I N   B A R   E L E M E N T S          ( C B A R )后面,再跳到第263行的0前面?

qibbxxt 发表于 2010-11-26 14:43:00

如果要实现你上个帖子的功能,可以用下面的代码clear;clc;close all
M = importdata('beam_static.f06', ' ',262);
SAMIN=M.data(~isnan(M.data(:,8)),8:9);
SBMIN=M.data(2:2:end,5:6);
MaxValue=max(feval(@(y)y(:),abs()))如果要跳过某行,可以用下面的代码t=0;
while ~feof(fid)
    tline = fgetl(fid);
    t=t+1;
    if t==263
      % your code
    end
end
页: [1]
查看完整版本: 读取数据时如何跳过若干行