【发布时间】:2018-05-10 23:52:50
【问题描述】:
这是简化的,但以下面的 MATLAB 函数句柄为例:
F = @(x)[x(1)-x(2);x(2)-x(3)]
系统当然有很多解决方案。在替换至少一个变量后,是否有可能获得像这样的函数的解决方案?例如,将x(3)=1 替换为函数将变为:
G = @(x)[x(1)-x(2);x(2)-1]
并且可以得到其他变量的解。我使用fsolve,它适用于我拥有的方程组。当然,我需要做的事情可以使用 Symbolic Toolbox 来完成,但是在一个大的 for 循环中调用它会使我的代码使用起来太慢。
我正在尝试编写一些代码,这些代码可以在给定F 的情况下返回G 以及x 中的一组索引以替换为给定值。
【问题讨论】:
-
很好的例子。几乎是我需要做的。不同之处在于评估 F 我使用 x,它是一个向量。这可以用向量来完成吗?考虑以下函数:
function G = convert (F, x, xMatrix)其中 xMatrix 说明要替换哪些变量。例如,如果 x=[3,2,1] 和 xMatrix=[0,0,1] 这意味着 G 将是G = @(x)[x(1)-x(2);x(2)-1]可以这样做吗? -
@SardarUsama:比这更复杂,因为它是替换参数中的索引元素,而不是替换整个输入参数。
标签: matlab function variable-assignment function-handle