Function 在MATLAB中将函数的元素传递给函数
我知道“将函数传递给函数”的主题定义得很好,我的问题略有不同 我有以下功能:Function 在MATLAB中将函数的元素传递给函数,function,matlab,parameter-passing,Function,Matlab,Parameter Passing,我知道“将函数传递给函数”的主题定义得很好,我的问题略有不同 我有以下功能: 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 = f
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
。然后评估function1
内部的function2
并使用i
和j
提取我需要的元素。我寻求的解决方案不是这个,而是直接发送function1
输出的元素(I
,j
)以在function2
处进行评估。您可以让function1
返回函数句柄,而不是计算值。我们不能创建函数句柄数组,但可以创建一个包含函数句柄的单元格数组。它看起来是这样的:
A=function1;
B=函数2(A{i,j},A);
函数P=函数1
a=@(x)x^2;
b=@(x)1/x;
c=@(x)x^3;
d=@(x)sqrt(x);
P={ab;cd};
结束
您可以使用函数1
返回函数句柄,而不是计算值。我们不能创建函数句柄数组,但可以创建一个包含函数句柄的单元格数组。它看起来是这样的:
A=function1;
B=函数2(A{i,j},A);
函数P=函数1
a=@(x)x^2;
b=@(x)1/x;
c=@(x)x^3;
d=@(x)sqrt(x);
P={ab;cd};
结束
我很难理解你的问题。什么是[ab;cd]
?这些是函数还是值?我认为a在这里是有益的。它们是x的函数,在函数1中计算。我将用一个简单的例子相应地编辑这篇文章。你的实现中的for循环有什么问题?我希望function2在function2中定义的特定点上评估function1的第I,j个组件。我很难理解你的问题。什么是[ab;cd]
?这些是函数还是值?我认为a在这里是有益的。它们是x的函数,在函数1中计算。我将用一个简单的例子相应地编辑这篇文章。你的实现中的for循环有什么问题?我希望function2在function2中定义的特定点上评估function1的第I,j个组件。这在我的案例中非常有效。非常感谢。这对我的案子非常有效。非常感谢你。