昨天吃饭接到数据处理任务,从txt中删除一些列,需求简单,但对于我一个代码小白来说,很难。
因为用matlab比较多,之前也用matlab处理过txt文件(读取,然后在matlab里处理,不需要输出),
我就在想我先将数据读取到matlab,然后将自己需要的列组成了矩阵,输出到txt中。
1.读取
[time,CO2, PM25, PM10, H2S,SO2, NO2, O3, CO, VOC,Tep,Humidity,Airp,lat,lon,height] = textread('园区.txt','%f %f %f %f... %f %f %f %f %f %f %f %f %f %f %f %f','headerlines',1);
用txtread读取,'headerlines',1代表跳过第一行(标题行)读取数据
2.新矩阵
y=[time,PM25,PM10,SO2,VOC,Tep,Humidity,Airp,lat,lon,height];
组成一个矩阵
3.输出
[m,n]=size(y);
for i=1:1:m
fprintf(fid,'%d %d %d %d %.3f %05.1f %05.1f %d %f %f %.3f\n',y(i,:));
end
fclose(fid);
每行输出,然后可以设置每列的数据精度。
附
每个元素输入:
fid=fopen('D:\新建文件夹\数据\0.txt','w');%写入文件路径
a=int8(dd);
[m,n]=size(a);
for i=1:1:m
for j=1:1:n
if j==n
fprintf(fid,'%g\r\n',a(i,j));
else
fprintf(fid,'%g',a(i,j));
end
end
end
fclose(fid);
关于数据精度
这里要注意一点:小数点也要算一位