gpt4 book ai didi

matlab - 如何从函数句柄中获取函数子集,函数句柄是 Matlab 中的函数向量

转载 作者:太空宇宙 更新时间:2023-11-03 19:54:52 24 4
gpt4 key购买 nike

在 Matlab 中,我有一个定义为向量的函数句柄,如下所示

F = @(x) [... 
coeff1*x(1)*x(4); ...
coeff2*x(3); ...
coeff3*x(7)*x(3) ...
];

实际上它有 150 行。我需要提取行中函数的不同子集。例如,从 F 中的 3:17 行创建一个新句柄。但我不能只是去索引句柄。有解决办法吗?

编辑:我需要子集作为新句柄,换句话说,我无法评估整个 F 而只是选择解决方案行。

提前致谢。

最佳答案

创建起来有点麻烦,但使用函数句柄向量而不是创建向量的函数句柄可能更有意义:

F = {... 
@(x)coeff1*x(1)*x(4); ...
@(x)coeff2*x(3); ...
@(x)coeff3*x(7)*x(3) ...
};

现在你可以调用

cellfun(@(x)x(y),F(3:17))

甚至

F2 = @(y)cellfun(@(x)x(y),F(3:17))

现在你可以调用

y = rand(10,1)
F2(y)

并且只返回原始 F317 行。这基本上只是简单地结束循环。您需要确保输入的 y 大小正确,否则会出现错误(即如果 y[1,2] 并且你的第三行尝试调用 y(7) 你会得到一个错误)

关于matlab - 如何从函数句柄中获取函数子集,函数句柄是 Matlab 中的函数向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36279499/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com