2015-03-19 57 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