【发布时间】:2022-01-08 16:02:33
【问题描述】:
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 的矩阵。但是,我在访问矩阵中的特定元素时遇到问题。这给了我一个错误,因为它认为我想在我只想要一个特定索引时评估矩阵。有没有办法解决这个问题?
【问题讨论】:
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 的矩阵。但是,我在访问矩阵中的特定元素时遇到问题。这给了我一个错误,因为它认为我想在我只想要一个特定索引时评估矩阵。有没有办法解决这个问题?
【问题讨论】:
如果您想要符号表达式而不是函数,则不需要括号中的参数:
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
【讨论】:
这个怎么样?
syms x1 x2
f1 = x1^2-3*x2+5;
f2 = -2*sin(x1)+5*x2*x1;
M = [f1 ; f2];
disp([1 0]*M); % accessing the element 1 by scalar product.
这样您就可以访问函数向量的元素。
【讨论】: