pietro
Posts:
374
Registered:
1/3/09


Re: how to convert a symbolic system into its matrix form
Posted:
Apr 6, 2013 3:25 PM


Christopher Creutzig <Christopher.Creutzig@mathworks.com> wrote in message <515D4395.8020402@mathworks.com>... > On 14.03.13 18:18, pietro wrote: > > Hi all, > > > > I have a symbolic system and I have to convert it in its matrix form. As example: > > > > a*x+b*y=2; > > c*x+d*y=5; > > > > in > > [a,b;c,d]*[x;y]=[2;5]; > > > > Is there anyway to perform that with matlab2012a? I know there is the function equationsToMatrix for the 2013a version, but unfortunately I don't have it. :( > > You could try to make polynomial expressions from the equations with the > ?children? function and then use ?quorem(lhs, x, x)? and ?quorem(lhs, y, > y)? to get the vectors to combine into the matrix. Not really pretty, I > know. > > > >> eqs = [a*x+b*y==2; c*x+d*y==5]; > >> lhsrhs = children(eqs); > >> lhsrhs = cellfun(@(x) x(1)x(2), lhsrhs, 'UniformOutput', false); > >> lhsrhs = [lhsrhs{:}].' > > lhsrhs = > > a*x + b*y  2 > c*x + d*y  5 > > >> [quorem(lhsrhs, x, x), quorem(lhsrhs, y, y)] > > ans = > > [ a, b] > [ c, d] > > > HTH, > Christopher
Hi Christopher,
it's a really good idea. It works
Thanks
Cheers
Pietro

