【发布时间】:2020-11-20 18:50:20
【问题描述】:
我知道“将函数传递给函数”主题定义明确,我的问题略有不同。
我有以下功能:
function P = function1(x)
a = x^2; b = 1/x;
c = x^3; d = sqrt(x);
P = [a b; c d]; % they are all functions of x
end
在 for 循环中,我想将输出 function1 的某些元素传递给 function2 以在其中进行评估,如下所示:
for i=1:2
for j=1:2
A = function1(a);
B = function2(A(i,j));
end
end
但是,我在a 对函数1 的评估(不要与function1 中的a 混淆)必须在function2 中完成。换句话说,我想将我的function1 的输出元素(i,j)发送到function2,以在function2 中定义的某个值a 进行评估。
任何帮助将不胜感激。
注意:执行此操作的一种方法是将i 和j 信息连同function1 一起发送到function2。然后在function2 中评估function1 并使用i 和j 提取我需要的元素。我寻求的解决方案不是这个,而是直接发送function1 输出的元素(i,j)以在function2 进行评估。
【问题讨论】:
-
我很难理解你的问题。
[a b; c d]是什么?这些是函数,还是这些值?我认为minimal reproducible example 在这里会有所帮助。 -
它们是 x 的函数,在函数 1 中进行评估。我将在此用一个简单的示例相应地编辑帖子。
-
你的实现中的 for 循环有什么问题?
-
我希望 function2 在 function2 中定义的特定点评估 function1 的第 i、j 个分量。
标签: function matlab parameter-passing