在MATLAB中将函数的元素传递给函数



我知道"将函数传递给函数";主题定义明确,我的问题略有不同。

我有以下功能:

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循环中,我想将输出function1function2的某些元素传递到其中进行评估,如下所示:

for i=1:2
for j=1:2
A = function1(a);
B = function2(A(i,j));
end
end

然而,我在a中对函数1的评估(不要与function1中的a混淆(必须在function2中进行。换句话说,我想将我的function1的输出元素(ij(发送到function2,以在function2中定义的某个值a进行评估。

如有任何帮助,我们将不胜感激。

注意:这样做的一种方法是将ij信息与function1一起发送到function2。然后评估function2内部的function1,并使用ij提取我需要的元素。我寻求的解决方案不是这样,而是直接发送function1输出的元素(ij(以在function2处进行评估。

您可以使用function1返回函数句柄,而不是计算值。我们不能创建一个函数句柄数组,但我们可以创建一个包含函数句柄的单元格数组。它看起来是这样的:

A = function1;
B = function2(A{i,j}, a);
function P = function1
a = @(x) x^2;
b = @(x) 1/x;
c = @(x) x^3;
d = @(x) sqrt(x);
P = {a b; c d};
end

相关内容

  • 没有找到相关文章

最新更新