Extracting variables from symbolic expression in a matrix form

1 visualización (últimos 30 días)
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?

Respuesta aceptada

Walter Roberson
Walter Roberson el 29 de Abr. de 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 comentarios
Giorgos Papakonstantinou
Giorgos Papakonstantinou el 29 de Abr. de 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 el 29 de Abr. de 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)

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Symbolic Math Toolbox en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by