MATLAB で .bmp グラフィックスを生成しようとしていますが、関数を合計するのに問題があります。任意の入力セットが与えられると、関数が任意の数の関数を一緒に追加し、関数ハンドルを出力するように関数を設計しています。入力は一般的な関数の係数であるため、任意の数の関数 (係数のみが異なる) を指定して、それらを関数ハンドルに追加できます。私がやろうとしたことは、各関数を文字列として作成し、それらを連結して関数ハンドルとして書き込むことです。主な問題は、(関数ハンドルを作成しようとしているために) x と y が定義されていないため、MATLAB がそれらを定期的に追加できないことです。私の現在の試み:
function HGHG = anyHGadd(multi) %my array of inputs
m=length(multi);
for k=3:3:m;
m1=multi(k-2); %these three are the coefficients that I'd like to specify
n1=multi(k-1);
w1=multi(k);
HGarrm1=hermite(m1); %these generate arrays
HGarrn1=hermite(n1);
arrm1=[length(HGarrm1)-1:-1:0];%these generate arrays with the same length
arrn1=[length(HGarrn1)-1:-1:0];%the function below is the general form of my equation
t{k/3}=num2str(((sum(((sqrt(2)*x/w1).^arrm1).*HGarrm1))*(sum(((sqrt(2)*y/w1).^arrn1).*HGarrn1))*exp(-(x^2+y^2)/(w1^2))));
end
a=cell2mat(t(1:length(t)));
str2func(x,y)(a);
どんな助けでも大歓迎です。私はこれについてここであまり見たことがなく、これが完全に可能かどうかさえ確信が持てません. 私の質問が明確でない場合は、そう言ってください。もう一度やり直します。
編集: x と y が定義されていないため、最後の行から 4 番目の行は数値を生成しません。関数ハンドルの一部として保持する必要があるため、それらはできません。私のコードの簡素化されたバージョンについては、うまくいけば、これがポイントになります:
function HGHG = anyHGadd(multi) %my array of inputs
m=length(multi);
for k=3:3:m;
m1=multi(k-2); %these three are the coefficients that I'd like to specify
n1=multi(k-1);
w1=multi(k);
t{k/3}=num2str(genericfunction(x,y,n1,m1,n1,w1); %where x and y are unspecified
end
a=cell2mat(t(1:length(t)));
str2func(x,y)(a);
編集これは、任意の数の関数の合計である単一の関数ハンドルを出力することを期待しています。ただし、文字列を使用することが最善の方法であるかどうかはわかりません。