Method on @sym: [A, b] = equationsToMatrix (eqns, vars)
Method on @sym: [A, b] = equationsToMatrix (eqns)
Method on @sym: [A, b] = equationsToMatrix (eq1, eq2, …)
Method on @sym: [A, b] = equationsToMatrix (eq1, …, v1, v2, …)

Convert set of linear equations to matrix form.

In its simplest form, equations eq1, eq2, etc can be passed as inputs:

syms x y z
[A, b] = equationsToMatrix (x + y == 1, x - y + 1 == 0)
  ⇒ A = (sym 2×2 matrix)

      ⎡1  1 ⎤
      ⎢     ⎥
      ⎣1  -1⎦

  ⇒ b = (sym 2×1 matrix)

      ⎡1 ⎤
      ⎢  ⎥
      ⎣-1⎦

In this case, appropriate variables and their ordering will be determined automatically using symvar (see ‘@sym/symvar’).

In some cases it is important to specify the variables as additional inputs v1, v2, etc:

syms a
[A, b] = equationsToMatrix (a*x + y == 1, y - x == a)
  -| ??? ... nonlinear...

[A, b] = equationsToMatrix (a*x + y == 1, y - x == a, x, y)
  ⇒ A = (sym 2×2 matrix)

      ⎡a   1⎤
      ⎢     ⎥
      ⎣-1  1⎦

  ⇒ b = (sym 2×1 matrix)

      ⎡1⎤
      ⎢ ⎥
      ⎣a⎦

The equations and variables can also be passed as vectors eqns and vars:

eqns = [x + y - 2*z == 0, x + y + z == 1, 2*y - z + 5 == 0];
[A, B] = equationsToMatrix (eqns, [x y])
  ⇒ A = (sym 3×2 matrix)

      ⎡1  1⎤
      ⎢    ⎥
      ⎢1  1⎥
      ⎢    ⎥
      ⎣0  2⎦

  B = (sym 3×1 matrix)

      ⎡ 2⋅z ⎤
      ⎢     ⎥
      ⎢1 - z⎥
      ⎢     ⎥
      ⎣z - 5⎦

See also: @sym/solve.

Package: symbolic