注册 登录
编程论坛 Matlab

请教一下matlab中return的功能

jbsjbs 发布于 2007-04-26 15:54, 6031 次点击

function xx = atan2x(u,v);
if u==v==0
xx=0;
return
end

if abs(v)<=abs(u)
result=atan(v/u);
if u<=0
if v<=0
xx=result-pi;
return;
else
xx=result+pi;
return;
end
else
xx=result;
return;
end
else
result=atan(-u/v);
if v<=0
xx=result-pi/2;
return;
else
xx=result+pi/2;
return;
end
end

这是我写的一个.m文件,名为atan2x,当我在主界面里面调用该函数,输入参数为0、0时,提示除数不能为0,但我在第二行已经作了当除数被除数都为0时的处理,并且return。请大家帮我看看怎么回事,我第一次用matlab,请大家帮忙,多谢各位了。

3 回复
#2
abingchem2007-04-26 19:05

这样的语句好像很有问题吧:
------------------------

if u==v==0   % if abs(u)<eps & abs(v)<eps ??

------------------------

#3
jbsjbs2007-04-27 15:14

我的意思是如果u等于v且等于0,不可以这么写么?我第一次使用matlab,对语法不熟悉,请帮忙指正一下。
而且这个程序不光是输入0、0通不过,输入两个异号的参数也通不过,我觉得还是语法有问题,但实在看不出哪里错。
谢谢了。

#4
leki2007-04-28 10:15
今天在书上偶然看到:
"如果M文件中包含return语句,则函数执行到该语句终止;如果不包含return语句,则执行到文件的最好一行终止"

我没有使用过,所以不敢多加说明
1