麻烦哪位大神帮我看看怎么老是提示出错(matlab 调用某个自定义函数)

如题所述

把最后那个end 移到第一个function 最后(第14或15行)追问

还是不行啊

追答

不好意思,我忘了sign是个内置函数。你完全可以把后面那个function II=sign(x)删了。而且这种嵌套式的(nested)函数结构有些特殊,不熟悉的话,建议尽量使用function .... end function ... end 这种不进行嵌套的结构。matlab的帮助 “nested functions”里有详细说明

追问

恩,谢谢这位大神了!我把程序改成上面这样的确可以了,不过我还是想知道刚才那样哪里错了!

追答

实现这一目的,可以用:
function tt=grad_ddd(x,t)
tt = sum(x(xt)));
end
最后的“end”加不加都行。所以实际有用的就一行。。。
至于那个错误,我没有试验,纯粹猜测可能是因为nested functions 在一些情况下,变量不需要传递就能实现共享。具体的建议你看help,我解释的不一定准确。

温馨提示:答案为网友推荐,仅供参考
相似回答