2015-03-19 64 views
1
syms x1 x2 

f1(x1,x2)=x1^2-3*x2+5; 
f2(x1,x2)=-2*sin(x1)+5*x2*x1; 

M = [f1 ; f2]; 
disp(M(1)); 

我嘗試創建符號表達式f1和f2的矩陣。但是,我無法訪問矩陣中的特定元素。這給了我一個錯誤,因爲它認爲我想在我只想要特定索引時評估矩陣。有沒有辦法解決?Matlab在符號矩陣中訪問元素

回答

2

如果你想符號表達式,而不是功能,你不需要爭論括號:如果你想要把函數處理成矩陣

syms x1 x2 

f1 = x1^2-3*x2+5; 
f2 = -2*sin(x1)+5*x2*x1; 

M = [f1 ; f2]; 
disp(M(1)); 

,MATLAB會告訴你這是不允許的,並建議使用單元格數組。就像這樣:

f1 = @(x1,x2) x1^2-3*x2+5; 
f2 = @(x1,x2) -2*sin(x1)+5*x2*x1; 

M = {f1 , f2}; 
disp(M{1}); 

然後,你可以調用函數:M{1}(5,3)返回21,M{2}(5,3)回報76.9

+0

你有一個好點。但是如果我也想維護一個函數的功能,我該怎麼做? – Mike 2015-03-19 03:37:47

+0

增加了一個功能版本,包含單元陣列。 – 2015-03-19 03:41:30