Extracting variables from symbolic expression in a matrix form

1 view (last 30 days)
I have a long equation in symbolic math toolbox which has the following form:
A*u1+B*u2+C*u3
A, B and C are long relationships consisting of symbolic variables. I would like to extract the A B C in from u1, u2 and u3 and write them in a matrix form. In other words I would like to shape a relationship such us
[A B C]*{u}
where u is
u=[u1;u2;u3]
How can I do that?

Accepted Answer

Walter Roberson
Walter Roberson on 29 Apr 2013
You could use coeffs but the output is a bit of a nuisance for multivariates.
You could call into MuPAD and use coeff.
But really, the easiest way is likely to use
A = subs(Expression, {u2,u3}, {0,0});
B = subs(Expression, {u1,u3}, {0,0});
C = subs(Expression, {u1,u2}, {0,0});
  2 Comments
Giorgos Papakonstantinou
Giorgos Papakonstantinou on 29 Apr 2013
Thank you very much Walter.
I would like to ask a relevant question with the symbolic math toolbox.
Suppose I have:
h=a+b;
k=c1*h +c2*h+c3*h;
then matlab would give me a result like this:
k=(a+b)*c1+(a+b)*c2+(a+b)*c3
Is there anyway to force matlab to display k at the following more compact form:
k=c1*h +c2*h+c3*h;
Walter Roberson
Walter Roberson on 29 Apr 2013
If you define k before you define h, then I think it might display in the shorter form.
syms h a b
k = c1*h +c2*h+c3*h;
h = a + b;
disp(k)

Sign in to comment.

More Answers (0)

Categories

Find more on Symbolic Math Toolbox in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!