Matlab 某个自定义的函数中如果有多个输出值 如何正确使用函数句柄@
1个回答
展开全部
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
追问
那抛开例子 如果对于一个多输出函数 使用函数句柄@操作符+函数名的方式 调用该函数 这个多输出怎么体现
追答
如果你坚持使用多输出而不是使用向量输出,那就只能另外定义一个调度函数,然后每次根据循环控制变量来决定函数返回多个输出中的一个求零点。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询