幂函数拟合批处理.m
来自「matlab 使用自定义函数」· M 代码 · 共 41 行
M
41 行
directory_name = uigetdir('D:\','打开要处理的数据文件夹');
files = dir(directory_name);
files_length = length(files);
outpath = uigetdir('G:\','创建保存数据的文件夹');
for k = 3:files_length
%%%%%%%%%%%%%%%%%%%%%%%%% 次雨量 单次大于等于12 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
numdata=xlsread([directory_name,'\',files(k).name],'次雨量 单次大于等于12');
len=length(numdata)+1;
y= xlsread([directory_name,'\',files(k).name],['l2:l',num2str(len)]);
x= xlsread([directory_name,'\',files(k).name],['f2:f',num2str(len)]);
myfunc=inline('beta(1).*(x.^beta(2))','beta','x');
beta=nlinfit(x,y,myfunc,[0 0]);
filename=str2num(files(k).name(1:5));
xlswrite([outpath,'\','output'],filename,['A',num2str(k),':A',num2str(k)]);
xlswrite([outpath,'\','output'],beta,['B',num2str(k),':C',num2str(k)]);
%%%%%%%%%%%%%%%%%%%%%%%%% 日雨量 单次大于等于12 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
numdata=xlsread([directory_name,'\',files(k).name],'日雨量 单次大于等于12');
len=length(numdata)+1;
y= xlsread([directory_name,'\',files(k).name],['l2:l',num2str(len)]);
x= xlsread([directory_name,'\',files(k).name],['f2:f',num2str(len)]);
myfunc=inline('beta(1).*(x.^beta(2))','beta','x');
beta=nlinfit(x,y,myfunc,[0 0]);
filename=str2num(files(k).name(1:5));
xlswrite([outpath,'\','output'],beta,['E',num2str(k),':F',num2str(k)]);
%%%%%%%%%%%%%%%%%%%%%%%%% 日雨量单日大于等于12 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
numdata=xlsread([directory_name,'\',files(k).name],'日雨量单日大于等于12');
len=length(numdata)+1;
y= xlsread([directory_name,'\',files(k).name],['l2:l',num2str(len)]);
x= xlsread([directory_name,'\',files(k).name],['f2:f',num2str(len)]);
myfunc=inline('beta(1).*(x.^beta(2))','beta','x');
beta=nlinfit(x,y,myfunc,[0 0]);
filename=str2num(files(k).name(1:5));
xlswrite([outpath,'\','output'],beta,['H',num2str(k),':I',num2str(k)]);
end;
%以下为测试
% xx=min(x):max(x);
% yy=beta(1).*xx.^beta(2);
% plot(x,y,'o',xx,yy,'r');
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?