另一个函数的函数的输出作为输入

37视图(30天)
Sandeep
Sandeep 2012年10月28日
编辑: 马特·J 2020年5月28日
假设有一个函数,这给了我两个矩阵a和B作为输出,我想用这两个矩阵作为另一个函数的输入,我怎么做?我不想复制粘贴输出矩阵或类型的整个矩阵作为输入第二个函数。

答案(2)

马特无花果
马特无花果 2012年10月28日
编辑:马特无花果 2012年10月28日
说你的第一个功能是叫FUNC1,你的第二个功能是FUNC2命名。您没有指定如果FUNC2返回任何值。
[A, B] = func1 (args);
func2 (A, B);
一个现实生活中的例子,你可以复制/粘贴!
(I, J) = max(魔法(5))%的MAX函数有两个返回。
功率(I, J)%通过从马克斯返回参数。(i ^ J)

马特·J
马特·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
马特·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)))

登录置评。

类别

找到更多的在和迭代解算器输出显示帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!