kanhlbai 发表于 2007-4-12 17:35

问一个load数据文本的问题,急!

正在写程序处理实验数据,使用load命令加载文本数据,但是遇到的问题是,数据文本的第一行是每列的标签文字,从第二列才是需要的数据,应该怎么办?:'( 谢谢各位了。下面是我的数据文本内容
X [#]   Y [#]        X         Y         Distance       Distance    U
63        0        1024        16        0        0        -2.76336       
63        1        1024        32        16        1.19383        -2.99523       
63        2        1024        48        32        2.38765        -3.00711       
63        3        1024        64        48        3.58148        -3.01009       
63        4        1024        80        64        4.77531        -2.79225       
63        5        1024        96        80        5.96914        -2.47107       
63        6        1024        112        96        7.16296        -2.17618       
63        7        1024        128        112        8.35679        -2.23017       
63        8        1024        144        128        9.55062        -2.61698       
63        9        1024        160        144        10.7444        -2.9207       
。。。。。。

w89986581 发表于 2007-4-12 17:45

转存以下

function = adjustline(filename,p,m,n)
%p为头信息行数,m为数据行数,n为间隔信息行数(这里,p=1,m=inf,n=0)

fid= fopen(filename,'r');
filename1 = ;
fid1= fopen(filename1,'w');
for ii=1:p,
    dataline1 = fgetl(fid);
    if ~ischar(dataline1),
      fclose(fid);
      fclose(fid1);
      return;
    end
end
while 1
    for ii=1:m,
      dataline1 = fgetl(fid);
      if ~ischar(dataline1),
            fclose(fid);
            fclose(fid1);
            return;
      end
      fprintf(fid1,'%s \n',dataline1);
    end
    for ii=1:n,
      dataline1 = fgetl(fid);
      if ~ischar(dataline1),
            fclose(fid);
            fclose(fid1);
            return;
      end
    end
end
return

kanhlbai 发表于 2007-4-12 18:01

谢谢先,再认真看!
没有简单的方法吗?这个转换要很长时间,不能在load的时候就从第二行开始吗?谢谢!

[ 本帖最后由 ChaChing 于 2009-7-3 22:29 编辑 ]

w89986581 发表于 2007-4-12 23:13

呵呵,我这函数主要是对sysnoise或者ansys输出文本操作的。如果你的文件只有第一行是不需要的数据,那你就从写字板打开、删除算了,哈哈。

wxyxiaomei 发表于 2007-4-13 10:04

回复 #5 w89986581 的帖子

我遇到此类情况时候我先用一个矩阵解决,让后在赋变量。
A=[63      0      1024      16      0      0      -2.76336      
63      1      1024      32      16      1.19383      -2.99523      
63      2      1024      48      32      2.38765      -3.00711      
63      3      1024      64      48      3.58148      -3.01009      
63      4      1024      80      64      4.77531      -2.79225      
63      5      1024      96      80      5.96914      -2.47107      
63      6      1024      112      96      7.16296      -2.17618      
63      7      1024      128      112      8.35679      -2.23017      
63      8      1024      144      128      9.55062      -2.61698      
63      9      1024      160      144      10.7444      -2.9207      ]
save A
然后我用.m文件引用变量
load A.mat
X [#]=A[:,1];
Y [#]=A[:,2];
X =A[:,3];
等等依次类推。

bulingshan 发表于 2007-4-13 14:08

http://forum.vibunion.com/forum/viewthread.php?tid=2029推荐你去看看这个帖子,讲的很明白。

wnek28 发表于 2011-7-31 10:38

用textread 可以跳过第一行数据啊
页: [1]
查看完整版本: 问一个load数据文本的问题,急!