文件是EMAG2.txt ,里面是x,y,z的三列数据。要求:提取所有-85≤x≤-30;-60≤y≤15;的数据,并且输出到新的txt文件中。
或者帮我改一下
clc;
clear;
fin=fopen('EMAG2.txt','r');
fout=fopen('EMAG2.dat','w');
while(~feof(fin))
x=fscanf(fin,'%g',1);
y=fscanf(fin,'%g',1);
z=fscanf(fin,'%g',1);
while (x>=-85&&x<=-30)
while (y>=-65&&y<=15)
fprintf(fout,'%g %g %g\n',x,y,z);
end
end
end
我假设你输入的那个文件时用逗号隔开三列的,那么只需要下边几句话就能完成你的工作了。
data=dlmread('EMAG2.txt');
ind=data(:,1)>=-85 & data(:,1)<=-30 & data(:,2)>=-60 & data(:,1)<=15;
dlmwrite('EMAG2.dat',data(ind,:),' ')
为了测试我自己写了一个txt,右侧的dat是运行程序后的结果。
追问你是用的什么软件?matlab?还是C?
追答matlab啊
给你看的这个是一个编辑器,跟matlab无关,只是为了让你看看哪结果。
我试了,没有效果
你文件放进文件夹中了吗?你那个文件把那个txt文件截个图发出来?你单步执行看看,第二步结束后data对不对。我这三步程序保证没有问题。
本回答被提问者采纳