Matlab-使用单个向量评估多输入匿名函数

我正在尝试使用单个向量来评估MatlabFunction,这意味着该向量将为该MatlabFunction中的每个变量保存一个值。

举一个简单的例子,我可以这样定义一个MatlabFunction:

syms x [3 1];

f1 = matlabFunction((x1 + x2)*x3,'var',sym2cell(x));

这定义了一个符号变量x,该变量包含三个符号变量:x1 x2 x3和一个MatlabFunction等于@(x1,x2,x3)x3.*(x1+x2)

我能够使用以下公式计算f1在点a上的梯度:

a = [1; 0; 0];
gradf = gradient(mf,x);
gradiant_of_a = double(subs(graf,x,a));

让我困扰的是,我无法对:p做同样的事情

f1_of_a = double(subs(f1,a));

我已经看到subs在函数句柄上不起作用。但是它适用于符号对象,例如gradf

这个问题有解决方案吗?

我找到了与f1_of_a = f1(1,0);搭配使用的答案,但这并不适合我,因为我使用的MatlabFunctions变量数量未知。 (xa的大小可以是(1、3)或(1、10),并且仍然可以使用,例如,我不会在第二个中手动键入10个参数情况)

谢谢您的帮助!

hyowinner 回答:Matlab-使用单个向量评估多输入匿名函数

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2897249.html

大家都在问