新浪博客

[转载]matlab自动生成word【转】

2015-09-24 09:12阅读:

一些工作是程式化的,做了一个就有了基本框架,其它的只要按照框架修改一些数据就行了,为了方便,我们有必要自动生成一个word文本,这样既减少输入错误,还为你节省了宝贵的时间,下面是我在工作中需要处理一些数据异常时用的程序(函数MyHT_AutoWord),效果不错,放上来,让同志们指正或借鉴!


function MyHT_AutoWord
%利用MATLAB生成Word文档
% MyHT_AutoWord
% Copyright 2011 suhejun.
% $Revision: 1.0.0.0 $ $Date: 2011/01/28 17:27:00 $
%% 一、首先是数据处理并成浓度曲线图
clear,clc
[fname,pname]=uigetfile('*.txt','open the date file');
fullname=strcat(pname,fname);
fidin=fopen(fullname,'rt');
if(fidin==-1)
display('no file vas selected');
return
end
[a,b1,c1]=textread(fullname,'%f%f%f'); % 打开一般的没有分割符的文件.
b=0.01143*b1;
c=0.1693*c1;
% 第一步:剔除单点异常
% -------------------------------------------------------------------------
n=length(b);
for i=1:n-1
if i==1;
if b(i)>2*b(i+1) & b(i)>2*b(i+2);
b(i)=(b(i+1)+b(i+2))/2;
end
if c(i)>2*c(i+1) & c(i)>2*c(i+2);
c(i)=(c(i+1)+c(i+2))/2;
end
else
if b(i)>2*b(i+1) & b(i)>2*b(i-1);
b(i)=(b(i+1)+b(i-1))/2;
end
if c(i)>2*c(i+1) & c(i)>2*c(i-1);
c(i)=(c(i+1)+c(i-1))/2;
end
end
end

% 第二步:判断异常下限
% -------------------------------------------------------------------------
mean_hg=mean(b);
mean_rn=mean(c);
std_hg=std(b);
std_rn=std(c);
% %没有除掉异常值计算的平均值
% normal_hg=mean_hg+2.*std_hg;
% normal_rn=mean_rn+2.*std_rn;
%除掉异常值计算的平均值(把大于整体平均值的不计于背景值)
normal_hg=mean(b(b<=mean_hg))+2.*std_hg;
normal_rn=mean(c(c<=mean_rn))+2.*std_rn;
texthgy1=normal_hg;
texthgy2=mean_hg;
textrny1=normal_rn;
textrny2=mean_rn;
% 第三步:绘制曲线图
% -------------------------------------------------------------------------
zft = figure('units','normalized','position',...
[0.280469 0.553385 0.428906 0.251302],'visible','off');
subplot(2,1,1);
xlim([0 max(a)]);
y1=b; % 测量数据
x=a; % 注意:自变量要单调变化
y2=texthgy1.*[ones(1,length(x))];
area(x',y1',texthgy1,'FaceColor','g');hold on
area(x',y2',min(y1),'FaceColor','w','EdgeColor','w');hold on
max_y1=max(y1);
beishu1=max_y1./texthgy2;
plot(a,b,'g-',a,b,'o','MarkerEdgeColor','g','MarkerFaceColor','white','MarkerSize',6);
xlabel('点距(m');ylabel('Hg(ng/l)');

我的更多文章

下载客户端阅读体验更佳

APP专享