本帖最后由 877049204 于 2018-10-18 16:20 编辑
如下图所示,EXCEL数据中有乱码数据,数据量很多,每隔一个周期就在数据中不定位置的出现,手工删除太麻烦
用MATLAB编写了一个脚本,寻找乱码标志,删除乱码数据及其上下两行数据。
代码如下:
%% 清空环境变量
clear all
clc
%% 导入文件
[num,txt,raw] = xlsread('P900_CO2 1%_CO 1%.xlsx',1);%%%读取指定sheet中的数据(只写1、2,不写sheet名称)
%%%%注意每个文件的第一行,如果是负数的话,可能在txt里面不识别,所以第三个工作的数据没识别成功!
%%%注意num和txt识别数据的类别!!!!
%%注意第一行需要有数值和字符,size(num)=size(raw)
%% 删除乱码数据,AnaCh0_IEnd_Spi:87.205544上,下两行
%P1=find(strcmp(raw,'AnaCh0_IEnd_Spi:87.032547'));%%%%寻找begin的位置
P1=find(strcmp(raw,'AnaCh0_IEnd_Spi:87.164513'));%%%%寻找begin的位置
[M1,N1]=size(P1);%返回乱码数据的个数
for i=0:M1-1 %遍历数据
a=P1(M1-i,1);
num(a-1:a+1,:)=[];
raw(a-1:a+1,:)=[];
end
|