问一个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
。。。。。。 转存以下
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 谢谢先,再认真看!
没有简单的方法吗?这个转换要很长时间,不能在load的时候就从第二行开始吗?谢谢!
[ 本帖最后由 ChaChing 于 2009-7-3 22:29 编辑 ] 呵呵,我这函数主要是对sysnoise或者ansys输出文本操作的。如果你的文件只有第一行是不需要的数据,那你就从写字板打开、删除算了,哈哈。
回复 #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];
等等依次类推。 http://forum.vibunion.com/forum/viewthread.php?tid=2029推荐你去看看这个帖子,讲的很明白。 用textread 可以跳过第一行数据啊
页:
[1]