求高手matlab编程,实现:
一:删除前十一个数后,每读取五个数据 换行一次,编辑后存为txt文档(原始文档.为epd格式),已附图(前一个是原始数据,后一个是处理后的)。
二:这是一天的数据,怎么样把一个月的数据都处理成txt文档后,整体绘图?
...收起
a=dlmread('原来的文件名',' ',0,11);%这里用了空格‘ ’作分隔符
b=reshape(a,[numel(a)/5 5]);%重组成5列的数据,不过要先确保减掉11个之后的数据是5的倍数
dlmwrite('后来的文件名',b,'delimiter','\t','newline','pc');
如果你要一个月的数据合并,可以设计一个循环
c=[];
for n=1:30 %按30天算
a=dlmread('原来的第n文件名',' ',0,11);
b=reshape(a,[numel(a)/5 5]);
dlmwrite('后来的第n个文件名',b,'delimit
...全文
不知道你的数据具体怎么样,我看好像是用空格隔开的
但是有没有其他不能显示的字符,或者不规则则的有多个空格
我就不太清楚了了
按照规则的数据,用dlmread肯定没有问题
按照你的文件名
for n=1:30 %按30天算
filename=['X411DSW11211201211' num2str(n,'%02d') '.epd'];%循环里面要打开的文件名
...........
end
每次循环filename会自动变化
'X411........01.epd','X411........02.epd',。。。。'X411........30.epd'
打开文件的时候用filename做文件名就可以
如果有'NULL'这种非数字的字符比较麻烦
先把'NULL',替换为'NaN',因为matlab能够识别nan的数,意思是not a number
fid=fopen('原来的文件名','r');
a=textscan(fid,'%s');%读取文件内容
fclose(fid);
a=a{1}(12:end);%舍弃前11个值
nulldata=find(strcmp('NULL',a));%找出NULL并替换为NaN
if ~isempty(nulldata),a(nulldata)=cellstr('NaN');end
b=str2double(a);
b=reshape(b,[length(b)/5 5]);
用这一段替换掉之前a=。。。,b=。。。两行
原来的NULL都被替换为NaN
plot(x,y,'--rs','LineWidth',2,... %线型为红色虚线,marker为方框,线粗细设定为2
'MarkerEdgeColor','k',... %marker边缘颜色设定为黑色
'MarkerFaceColor','g',... %marker内
...全文