matlab处理数据,需要自己提取出有用的数据,这才是要学的
clear all;
[orig_filename, directory_name]=uigetfile({'*.*'},'Select the data file');
filename=strcat(directory_name,orig_filename);
fid1 = fopen(filename, 'r', 'b');
[tmpdata, data_length] = fread(fid1,'uint8'); %读取里面的数据,将数据保存到tmpdata中
%ASCII码空格是32
%ASCII码0是48
%一行数据32个
%ASCII码.是46
%每四个是一个数据,一行8个数据
len=1;
for i=1:length(tmpdata)
if(tmpdata(i)==58)
if(tmpdata(i+1)==32)
if(tmpdata(i+2)~=46)%做限制,防止误判
if(tmpdata(i+3)~=46) %做限制,防止误判
for j=i+1:i+40
if(tmpdata(j)~=32) %空格不读取
a(len)=tmpdata(j);%将有效数据保存到a数组中
len=len+1;
end
end
end
end
end
end
end
%转换成字符,将a数组中的ascii码转换成char型数据格式
for i=1:length(a)
b(i)=char(a(i));
end
%将b数组中数据每四位截取出来
cnt=1;
for i=1:4:length(a)
temp=1;
for j=1:4
ch(cnt,temp)=b(i);%将数组每四位截取出来 ,保存到新的ch数组字符串中
temp=temp+1;
i=i+1;
end
cnt=cnt+1;
end
%将数据高低位交换,得到有效格式,比如是12eb ,变成eb12
for i=1:length(ch)
temp1=ch(i,1);
temp2=ch(i,2);
th(i,1)=ch(i,3);
th(i,2)=ch(i,4);
th(i,3)=temp1;
th(i,4)=temp2;
end
b=hex2dec(th);%16进制转换成10进制,字符串也可以转成10进制
t=linspace(0,10,length(th));
plot(t,b); %画图
将数据放在text中
在处理中,变量格式如下
|
请发表评论