Coeff & constants of a symbolic equation
3 次查看(过去 30 天)
显示 更早的评论
syms a b c
exp=[-a-2*b-3*c+2, 4*b-c, -5*a+3]
I need the coefficient matrix in the form
% Coef_matrix=[ -1, -2, -3, 2; 0, 4, -1, 0; -5, 0, 0, 3];
How do I get this?
I can get the first line from the following syntax (from a previous blog), but there is an error when I try to do the second & third lines (i.e. j=1:3) as there is a 'zero' which it wont recognize
xx = symvar(exp) %find the variables in expression 'exp'
Coef_matrix = zeros(numel(exp),numel(xx));
for j = 1
[v1,v2] = coeffs(exp(j),xx);
Coef_matrix(j,ismember(xx,v2)) = v1(1:numel(xx));
end
And when I get the coefficients, I cant get the constant term at the end.
The solution should be able to scale up for more variables, as this is a simplified version of my problem. Thanks
0 个评论
采纳的回答
Oleg Komarov
2012-8-20
编辑:Oleg Komarov
2012-8-20
syms a b c
exp = [-2*b-a-3*c+2; -c+4*b; -5*a+3];
xx = symvar(exp);
Coef_matrix = zeros(numel(exp),numel(xx)+1);
for j = 1:3
[v1,v2] = coeffs(exp(j),xx);
[idx,loc] = ismember(v2,xx);
idx(end) = true;
loc(loc == 0) = 4;
Coef_matrix(j,loc) = v1(idx);
end
6 个评论
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!