Matlab访问符号矩阵中的元素

时间:2015-03-19 03:08:26

标签: matlab matrix

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的矩阵。但是,我在访问矩阵中的特定元素时遇到了麻烦。这给了我一个错误,因为它认为我想在我想要特定索引时评估矩阵。有没有办法解决这个问题?

1 个答案:

答案 0 :(得分: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