另一个函数的函数的输出作为输入
37视图(30天)
显示旧的评论
答案(2)
马特·J
2012年10月28日
编辑:马特·J
2012年10月28日
如果你的意思是你想叫func2 (func1)在一个声明中,然后不返回a和B作为单独的输出参数从你的第一个函数。有你的第一个函数在单元阵列。即。,而不是
函数[A, B] = func1 (n)
=兰德(n); B =兰德(n, 2);
函数C = func2 (A, B)
C = A * B;
你可以这样做
函数AB = func1 (n)
AB ={兰德(n);兰特(n, 2)};
函数C = func2 (AB)
AB C = {1} * AB {2};
现在你能做的
C = func2 (func1 (n));
4评论
马特·J
2020年5月27日
编辑:马特·J
2020年5月28日
你查看
潜艇
扮演的角色
func2
在这里。我可以看到你为什么不能修改
潜艇
直接,但我不明白为什么你不能编写一个包装器
潜艇
来帮你扩展:
函数argCell = mysubs (eq)
=潜艇(eq, argCell {:});
结束
并且把它应用到例子如下
信谊x y z
eq1 = x = = y ^ 2
eq2 = y = = z 1
mysubs (eq1 num2cell(儿童(eq2)))
做一些普遍适用的不仅仅是
潜艇()
,您可以编写一个通用的效用函数,说,
myfeval
函数变长度输入宗量,varargout = myfeval(有趣)
[varargout {1: nargout}] =函数宏指令(乐趣,变长度输入宗量{1:end-1},变长度输入宗量{结束}{:});
结束
并应用到你的例子,
信谊x y z
eq1 = x = = y ^ 2
eq2 = y = = z 1
myfeval (@subs eq1 num2cell(儿童(eq2)))