我正在尝试构建一个 matlab 函数,该函数将评估作为参数发送的函数和向量。我很难弄清楚如何发送函数,以便可以在 matlab 函数中对其进行评估。我想出了如何在没有该函数的情况下做到这一点,但我在尝试在 matlab 函数中评估它时有点迷失了。下面是我的代码...
这就是我正在尝试做的...
x = [x1 x2]';
f = x(x1)^2 + 2 * (x2)^2
x = [5 10];
f = (5)^2 + 2 * (10)^2 % which I would like to return 225, not a column vector
这就是我所拥有的,也是我尝试过的......
x = [5 10]';
% without using a matlab function
% k = 1
% f = x(k)^2 + 2 * x(k + 1)^2; % returns the correct answer of 225
f = x^2 + 2 * x^2 % complains about the scalar 2
f = x.^2 + 2 * x.^2 % returns a column vector [75; 300]
function [value] = evalFunction(f,x)
value = f(x);
我试过了...
f = @(x) x.^2 + 2 * (x+1).^2;
value = evalFunction(@f,x) %Error: "f" was previously used as a variable
于是我试了...
f = @(x) x.^2 + 2 * (x+1).^2;
value = evalFunction(f,x) %value = [97;342]
我是 matlab 新手,因此不胜感激。我一直在做一些研究,并在 stackoverflow 上找到了一些东西,但似乎无法让它工作。我已经看到有其他方法可以做到这一点,但我最终会向 matlab evalFunction 函数添加更多代码,所以我想这样做。谢谢!