1
ユーザーが入力したパラメータに基づいてMATLABで記号関数を作成し、fminsearch(fun、x0)を使用してその関数を最小化しようとしていますシンボリック関数を許可する。 sym2poly()以外のユーザー入力に基づいて任意のシンボリック関数を生成する方法を見つけることができないようです。これは多項式関数を生成したい場合にのみ機能します。何か案は?ユーザー入力に基づいてMATLABで記号関数を作成する方法
ユーザーが入力したパラメータに基づいてMATLABで記号関数を作成し、fminsearch(fun、x0)を使用してその関数を最小化しようとしていますシンボリック関数を許可する。 sym2poly()以外のユーザー入力に基づいて任意のシンボリック関数を生成する方法を見つけることができないようです。これは多項式関数を生成したい場合にのみ機能します。何か案は?ユーザー入力に基づいてMATLABで記号関数を作成する方法
私はstr2func
は、あなたが探しているものだと思い:
% this is actually your user input, it could be taken,
% for example, using inputdlg function
user_in = inputdlg('Enter your function:','Function'); % '2*x + 4'
% the user input is transformed into a function handle
% that can be passed to fminsearch
fh = str2func(['@(x) ' user_in]);
% the function created from the user input is evaluated
x = fminsearch(fh,x0);
ます。また、入力引数を定義するために使用してみましょうことができます(ただし、私はfminsearch
でこれが必要だとは思わない):
str = '@(x,y) 2*x + 4*y + 1';
fh = str2func(str);
もっとに関する情報については
:
ありがとうございます!それは私の心にあったものではありませんでしたが、うまくいったのです! – Beth
あなたは大歓迎です:) –