パラメータとして送信される関数とベクトルを評価する 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を初めて使用するので、助けていただければ幸いです。私はいくつかの調査を行っており、ここでスタックオーバーフローでいくつかのものを見つけましたが、それを機能させることができないようです. これを行うには他の方法があることを見てきましたが、最終的には matlab evalFunction 関数にさらにコードを追加する予定なので、この方法で行いたいと思います。ありがとう!