我試圖產生的.bmp MATLAB中的圖形和我有麻煩總結功能結合在一起。我正在設計我的函數,使得給定一組任意的輸入,我的函數將一起添加任意數量的函數並輸出一個函數句柄。輸入是我的通用函數的係數,所以我可以指定任意數量的函數(只因係數不同而不同),然後將它們一起添加到函數句柄中。我試圖做的是將每個函數創建爲一個字符串,然後將它們連接起來,然後將它們作爲函數句柄進行編寫。主要的問題是,因爲x和y沒有定義(因爲我試圖創建一個函數句柄),MATLAB不能定期添加它們。我目前的嘗試:添加的功能的任意數量成函數手柄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沒有定義。它們不可能是因爲我需要將它們作爲我的函數句柄的一部分來保存。至於我的代碼一個精簡版,希望這得到跨越點:
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);
編輯我期待這對輸出功能單一手柄是我的函數任意數量的總和。但是,我不確定使用字符串是否是最好的方法。
你能發佈您的代碼的精簡版?另外據我所見,第四行最後一行't {k/3} = ...'產生一個數字......這怎麼可能是一個等式的一般形式? – jmetz 2012-07-24 19:17:48
您希望從多個手柄獲得什麼樣的輸出? – Jonas 2012-07-24 19:59:49
您是否嘗試過[符號變量](http://www.mathworks.com/help/toolbox/symbolic/syms.html)? – Squazic 2012-07-24 20:03:16