- 积分
- 1330
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2013-5-10
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
主程序如下:
for i=1:n_length_filename_a1c1
file_a1c1=strcat('G:\0907\80cm-a1andc1\',stid_filename_a1c1(i,:),'.txt');
[stid_year,a1,c1]=textread(file_a1c1,'%f%f%f');
%%%%%由上一行读取a1和c1的值,应用在调用的函数中
for j=1,21
file_dT_year=strcat('G:\0907\80cm-tibet-6\',stid_filename_dT(((i-1)*21+j),:),'.txt');
[stid_station,year_dT,month_dT,dT]=textread(file_dT_year,'%f%f%f%f');
for m=1,12
b1=w*month_dT(m);
dT_staion_year_month=dT(m);
%%%%%上一行中的dT_staion_year_month也要应用在调用函数中
B1=1;
KK(m)=fzero('funx',B1);
%%%%%共有34个文件*21年*12个月,因此kk是一个与m(月)有关的变量
if (year_dT(m)/4==0)
month_day(2)=29;
else
month_day(2)=28;
end
if (m==4|m==6|m==9|m==11)
month_day(m)=30
else
month_day(m)=31
end
K(m)=2*w/KK(m)^2/(month_day(m)*(3600*24));
调用函数如下:
function fx=funx(x,a1,b1,c1,dT_staion_year_month);
dz=2.4;
w=2*(pi)/12;
fx=a1*exp(-x*dz)*sin(b1+c1-x*dz)-dT_staion_year_month;
end
提示错误:
错误使用 fzero (line 289)
FZERO 无法继续,因为用户提供的 function_handle ==> funx 失败,出现下面的错误。
输入参数的数目不足。
出错 Untitled1 (line 21)
KK(m)=fzero('funx',B1);
希望能每次调用函数时,都能从主程序中读取不同的a1,b1,c1,dT_staion_year_month参数的值。
因为刚开始接触matlab,对函数调用还不熟悉,麻烦各位帮忙看看应该要想得到这样的结果应该怎么写程序啊?谢谢! |
|