robin908 发表于 2006-12-9 00:31

每n行取一行数据

实验数据太多(40961行,m列, ),想每20行取一行数据,下面以一列为例:
test1.txt
1
2



40961

输入命令:
function Column1
N=40961;
fin=fopen('test1.txt','r');
fout=fopen('out.txt','w');
x=zeros(N,1);
x=fscanf(fin,'%d');
for i=1:N/20;
    fprintf(fout,'%15.9f\n',x(1+(i-1)*20));
end
fclose(fin);
fclose(fout);

显示出错信息:
??? Index exceeds matrix dimensions.

Error in ==> D:\MATLAB6p5\work\Column1.m
On line 9==>   fprintf(fout,'%15.9f\n',x(1+(i-1)*20));

请教各位高手有什么好的办法解决啊?

Tla 发表于 2006-12-9 09:20

用向量的方式;
newArray = oldArray(1:20:end)

pengweicai 发表于 2006-12-9 09:27

N=40961;
fin=fopen('test1.txt','r');
fout=fopen('out.txt','w');
x=fscanf(fin,'%d');
xx=x(1:20:40961,1:m)%%%%%

robin908 发表于 2006-12-9 12:24

问题已解决,谢谢tla & pengweicai!

[ 本帖最后由 robin908 于 2006-12-9 12:28 编辑 ]
页: [1]
查看完整版本: 每n行取一行数据