Matlab 某个自定义的函数中如果有多个输出值 如何正确使用函数句柄@

举个列子求一个函数的0点如何正确使用才能一次fzero将y1y2对应的0点找出来... 举个列子 求一个函数的0点

如何正确使用 才能一次fzero 将y1 y2对应的0点找出来
展开
 我来答
tianxiawulang
推荐于2016-10-29 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2649万
展开全部

fzero求解的函数只能是单输出的(如果是多输出函数,后面的输出会被忽略)。

不可能如你所希望的那样,通过一次fzero求出y1、y2对应的零点。只能通过循环的方式做。

 

但如果把函数改写一下,可以避免使用显式循环:

function y = A(x)
y(1)=x-5;
y(2)=x-3;

 然后求解:

>> s=arrayfun(@(i)fzero(@(x)subsref(A(x),struct('type','()','subs',{{i}})),[1 6]),1:length(A(1))) 
s =
     5     3
追问
那抛开例子 如果对于一个多输出函数 使用函数句柄@操作符+函数名的方式 调用该函数 这个多输出怎么体现
追答
如果你坚持使用多输出而不是使用向量输出,那就只能另外定义一个调度函数,然后每次根据循环控制变量来决定函数返回多个输出中的一个求零点。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式