Matlab 某个自定义的函数中如果有多个输出值 如何正确使用函数句柄@
答案:1 悬赏:10 手机版
解决时间 2021-02-12 02:54
- 提问者网友:夢醒日落
- 2021-02-11 13:35
Matlab 某个自定义的函数中如果有多个输出值 如何正确使用函数句柄@
最佳答案
- 五星知识达人网友:拜訪者
- 2021-02-11 14:36
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追问那抛开例子 如果对于一个多输出函数 使用函数句柄@操作符+函数名的方式 调用该函数 这个多输出怎么体现追答如果你坚持使用多输出而不是使用向量输出,那就只能另外定义一个调度函数,然后每次根据循环控制变量来决定函数返回多个输出中的一个求零点。
不可能如你所希望的那样,通过一次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追问那抛开例子 如果对于一个多输出函数 使用函数句柄@操作符+函数名的方式 调用该函数 这个多输出怎么体现追答如果你坚持使用多输出而不是使用向量输出,那就只能另外定义一个调度函数,然后每次根据循环控制变量来决定函数返回多个输出中的一个求零点。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯