One or more output arguments not assigned during call to *** 出错求助
我这个程序到底错在哪里,好几天了就是改不好:@Q,谁能帮我看看,我将感激不尽啊求C(r22,z)在r22=5.5 ,z=[0
25]内C(r22,z)的值,
画(z,C)的图
Matlab程序
M文件 shuzhijifen.m
function y=shuzhijifen(z)
function f=f(r)
ua=0.003;
us=2;
g=0.68;
uss=us.*(1-g);
z0=1./(ua+uss);
Reff=0.493;
D=1./(3*(ua+uss));
zb=2.*D.*(1+Reff)./(1-Reff);
ueff=(3.*ua.*(ua+uss)).*0.5;
r1=((z-z0).^2+r.^2).^0.5;
r2=((z+z0+2.*zb).^2+r.^2).^0.5;
utt=ua+(1-g).*us;
r22=5.5;
R=2;
I0=exp(-2*(r22.^2+r.^2)./R.^2+4.*r.*r22/R.^2).*BESSELI(0,4.*r.*r22/R.^2);
Idz=(1/((4*pi)*4*pi*D)).*((exp(-ueff*r1))./r1-(exp(-ueff.*r2))./r2)+(3/(4.*pi)).*(1./(3.*utt.*4.*pi.*D)).*((z-z0).*(ueff+r1.^-1).*(exp(-ueff.*r1))./(r1.^2)-(z+z0+zb).*(ueff+r2.^-1).*exp(-ueff.*r2)./(r2.^2));
f=Idz.*I0.*2.*3.14.*r;
end
y=quadl(@f,3.5,5.5)
end
保存后运行
clear all
kk=linspace(0,25);
y=zeros(size(kk));
for ii=1:length(kk)
y(ii)=shuzhijifen(kk(ii));
end
plot(kk,y)
运行结果
??? One or more output arguments not assigned during call to'shuzhijifen'.
Error in ==> J:\入射光束半径\test.m
On line 5
==>y(ii)=shuzhijifen(kk(ii));
[ 本帖最后由 eight 于 2008-3-2 10:01 编辑 ] 原帖由 aprildays 于 2008-3-2 09:25 发表 http://www.chinavib.com/forum/images/common/back.gif
我这个程序到底错在哪里,好几天了就是改不好:@Q,谁能帮我看看,我将感激不尽啊
求C(r22,z)在r22=5.5 ,z=[0
25]内C(r22,z)的值,
画(z,C)的图
Matlab程序
M文件 shuzhijifen.m
function y=shuzhijifen(z)
f ...
请到置顶帖中找答案(热点话题讨论贴中有个常见错误整理贴)
另外,发帖前,请认认真真阅读一遍所有的置顶帖
回复 楼主 的帖子
function y=shuzhijifen(z)function f=f(r)
一个m文件里不好这样写 原帖由 sigma665 于 2008-3-2 10:55 发表 http://www.chinavib.com/forum/images/common/back.gif
function y=shuzhijifen(z)
function f=f(r)
一个m文件里不好这样写
嗯,估计贴错了,第二行应该是多余的吧
回复 3楼 的帖子
那如何写啊,帮忙指正,谢谢回复 2楼 的帖子
我的权限看不了那个帖子啊,郁闷回复 5楼 的帖子
function y=shuzhijifen(z r) 原帖由 aprildays 于 2008-3-2 11:54 发表 http://www.chinavib.com/forum/images/common/back.gif我的权限看不了那个帖子啊,郁闷
权限问题看 Matlab学习(发贴)方法(经验)贴索引3楼。建议多看看置顶的会员守则。置顶区的帖子,能看到的先看,你就会发现不能看的帖子如何看了
[ 本帖最后由 eight 于 2008-3-2 12:01 编辑 ] function y=shuzhijifen(z)
function f=f(r)
ua=0.003;
us=2;
g=0.68;
uss=us.*(1-g);
z0=1./(ua+uss);
Reff=0.493;
D=1./(3*(ua+uss));
zb=2.*D.*(1+Reff)./(1-Reff);
ueff=(3.*ua.*(ua+uss)).*0.5;
r1=((z-z0).^2+r.^2).^0.5;
r2=((z+z0+2.*zb).^2+r.^2).^0.5;
utt=ua+(1-g).*us;
r22=5.5;
R=2;
I0=exp(-2*(r22.^2+r.^2)./R.^2+4.*r.*r22/R.^2).*besseli(0,4.*r.*r22/R.^2);
Idz=(1/((4*pi)*4*pi*D)).*((exp(-ueff*r1))./r1-(exp(-ueff.*r2))./r2)+(3/(4.*pi)).*(1./(3.*utt.*4.*pi.*D)).*((z-z0).*(ueff+r1.^-1).*(exp(-ueff.*r1))./(r1.^2)-(z+z0+zb).*(ueff+r2.^-1).*exp(-ueff.*r2)./(r2.^2));
f=Idz.*I0.*2.*3.14.*r;
end
y=quadl(@f,3.5,5.5);
end>> clear all
kk=linspace(0,25);
y=zeros(size(kk));
for ii=1:length(kk)
y(ii)=shuzhijifen(kk(ii));
end
plot(kk,y)
可以运行,我的是2007b版本,没有错误
原来可以有2个function的,又学了点
[ 本帖最后由 sigma665 于 2008-3-2 12:27 编辑 ] 非常感谢啊,我换个版本试试 原帖由 sigma665 于 2008-3-2 12:24 发表 http://www.chinavib.com/forum/images/common/back.gif
function y=shuzhijifen(z)
function f=f(r)
ua=0.003;
us=2;
g=0.68;
uss=us.*(1-g);
z0=1./(ua+uss);
Reff=0.493;
D=1./(3*(ua+uss));
zb=2.*D.*(1+Reff)./(1-Reff);
ueff=(3.*ua.*(ua+uss)).*0.5;
r1= ...
两个function在同一个m文件中是没有问题的,不过楼主的写法有点问题,因为第一个function没有函数体
另外,估计运行一次是不会有问题的,楼主出现的错误是多次运行造成的,我在常见错误整理贴那里专门介绍了这个错误的
页:
[1]