MATLAB: How to substitute an array of double values into a symbolic equation

cell arraysMATLABplease helpsubsym

Hello MATLAB community,
I am currently struggling to substitute values from a symbolic array into a structure of symbolic equations. I have a system of 18 nonlinear equations and have solved them symbolically. I am currently attempting to plug in an array of values from a symbolic matrix into each field of the structure (each structure is one equation), and then convert the resulting expression to a double.
I am not hardcoding each variable I need to substitue into each equation because a symbolic solution to each equation looks like this….
(I apologize in advance for the clutter)
(0.5*(1.0*W6*h5*cos(0.017453292519943295769236907684886*o2)^2*cos(0.017453292519943295769236907684886*o6) - W6*h5*cos(0.017453292519943295769236907684886*o6)*sin(0.017453292519943295769236907684886*o2)^2 - 2.0*W5*x6*cos(0.017453292519943295769236907684886*o2)^2*sin(0.017453292519943295769236907684886*o6) - 2.0*W5*h5*cos(0.017453292519943295769236907684886*o2)^2*cos(o6) - 2.0*W6*h5*cos(0.017453292519943295769236907684886*o2)^2*cos(o6) + 2.0*W6*h5*sin(0.017453292519943295769236907684886*o2)^2*cos(o6) + 2.0*W5*x6*cos(0.017453292519943295769236907684886*o2)*sin(0.017453292519943295769236907684886*o2)*cos(o6) + 2.0*W5*h5*cos(0.017453292519943295769236907684886*o2)*sin(0.017453292519943295769236907684886*o2)*sin(0.017453292519943295769236907684886*o6)))/(L5*(1.0*h5*sin(0.017453292519943295769236907684886*o2)^3*sin(0.017453292519943295769236907684886*o6) - x6*cos(0.017453292519943295769236907684886*o2)^3*sin(0.017453292519943295769236907684886*o6) - h5*cos(0.017453292519943295769236907684886*o2)^3*cos(o6) + 1.0*x6*sin(0.017453292519943295769236907684886*o2)^3*cos(o6) + 1.0*x6*cos(0.017453292519943295769236907684886*o2)^2*sin(0.017453292519943295769236907684886*o2)*cos(o6) + 1.0*h5*cos(0.017453292519943295769236907684886*o2)^2*sin(0.017453292519943295769236907684886*o2)*sin(0.017453292519943295769236907684886*o6) - x6*cos(0.017453292519943295769236907684886*o2)*sin(0.017453292519943295769236907684886*o2)^2*sin(0.017453292519943295769236907684886*o6) - h5*cos(0.017453292519943295769236907684886*o2)*sin(0.017453292519943295769236907684886*o2)^2*cos(o6)))
I created two different cell arrays, one which contained all of the symbolic constants that I want to sub into the equation, and one that contained the numeric values that corresponded with each symbolic constant. I created the following code below to attempt to do this.
Ax_d = Sol.Ax
Ax_d = subs({Var_matrix}, {G_matrix})
Where Var_matrix is the variable matrix and G_matrix is the numeric value matrix that is currently still in symbolic form. When I run the code, I obtain a very incorrect result…
[ x5, x5, x5, x5, x5, x5, x5, x5, x5, x5, x5, x5, x5, x5, x5, x5, x5, x5, x5, x5, x5, x5, x5, x5, x5, x5, x5, x5, x5, x5, x5, x5, xp, xp, xp, xp, xp, xp, xp, xp, xp, xp, xp, xp, xp, xp, xp, xp, xp, xp, xp, xp, xp, xp, xp, xp, xp, xp, xp, xp, xp, xp, xp, xp, dx, dx, dx, dx, dx, dx, dx, dx, dx, dx, dx, dx, dx, dx, dx, dx, dx, dx, dx, dx, dx, dx, dx, dx, dx, dx, dx, dx, dx, dx, dx, dx, dy, dy, dy, dy, dy, dy, dy, dy, dy, dy, dy, dy, dy, dy, dy, dy, dy, dy, dy, dy, dy, dy, dy, dy, dy, dy, dy, dy, dy, dy, dy, dy, 25, 2, 2, 2, 2, 2, 2, 69/50, 3/2, 299/200, 3/2, 23/100, 17/20, 0, 0, 0, 0, 0, 1, 1, 1, 88, 15/2, 15/2, 15/2, 0, 0, 273/400, 30, 30, o5, o6, y0, y0, y0, y0, y0, y0, y0, y0, y0, y0, y0, y0, y0, y0, y0, y0, y0, y0, y0, y0, y0, y0, y0, y0, y0, y0, y0, y0, y0, y0, y0, y0, x1, x1, x1, x1, x1, x1, x1, x1, x1, x1, x1, x1, x1, x1, x1, x1, x1, x1, x1, x1, x1, x1, x1, x1, x1, x1, x1, x1, x1, x1, x1, x1, y1, y1, y1, y1, y1, y1, y1, y1, y1, y1, y1, y1, y1, y1, y1, y1, y1, y1, y1, y1, y1, y1, y1, y1, y1, y1, y1, y1, y1, y1, y1, y1, x2, x2, x2, x2, x2, x2, x2, x2, x2, x2, x2, x2, x2, x2, x2, x2, x2, x2, x2, x2, x2, x2, x2, x2, x2, x2, x2, x2, x2, x2, x2, x2, y2, y2, y2, y2, y2, y2, y2, y2, y2, y2, y2, y2, y2, y2, y2, y2, y2, y2, y2, y2, y2, y2, y2, y2, y2, y2, y2, y2, y2, y2, y2, y2, x5, x5, x5, x5, x5, x5, x5, x5, x5, x5, x5, x5, x5, x5, x5, x5, x5, x5, x5, x5, x5, x5, x5, x5, x5, x5, x5, x5, x5, x5, x5, x5, x6, x6, x6, x6, x6, x6, x6, x6, x6, x6, x6, x6, x6, x6, x6, x6, x6, x6, x6, x6, x6, x6, x6, x6, x6, x6, x6, x6, x6, x6, x6, x6, xcom1, xcom1, xcom1, xcom1, xcom1, xcom1, xcom1, xcom1, xcom1, xcom1, xcom1, xcom1, xcom1, xcom1, xcom1, xcom1, xcom1, xcom1, xcom1, xcom1, xcom1, xcom1, xcom1, xcom1, xcom1, xcom1, xcom1, xcom1, xcom1, xcom1, xcom1, xcom1, xcom2, xcom2, xcom2, xcom2, xcom2, xcom2, xcom2, xcom2, xcom2, xcom2, xcom2, xcom2, xcom2, xcom2, xcom2, xcom2, xcom2, xcom2, xcom2, xcom2, xcom2, xcom2, xcom2, xcom2, xcom2, xcom2, xcom2, xcom2, xcom2, xcom2, xcom2, xcom2, xcom3, xcom3, xcom3, xcom3, xcom3, xcom3, xcom3, xcom3, xcom3, xcom3, xcom3, xcom3, xcom3, xcom3, xcom3, xcom3, xcom3, xcom3, xcom3, xcom3, xcom3, xcom3, xcom3, xcom3, xcom3, xcom3, xcom3, xcom3, xcom3, xcom3, xcom3, xcom3, k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, L2, L2, L2, L2, L2, L2, L2, L2, L2, L2, L2, L2, L2, L2, L2, L2, L2, L2, L2, L2, L2, L2, L2, L2, L2, L2, L2, L2, L2, L2, L2, L2, L4, L4, L4, L4, L4, L4, L4, L4, L4, L4, L4, L4, L4, L4, L4, L4, L4, L4, L4, L4, L4, L4, L4, L4, L4, L4, L4, L4, L4, L4, L4, L4, L5, L5, L5, L5, L5, L5, L5, L5, L5, L5, L5, L5, L5, L5, L5, L5, L5, L5, L5, L5, L5, L5, L5, L5, L5, L5, L5, L5, L5, L5, L5, L5, L6, L6, L6, L6, L6, L6, L6, L6, L6, L6, L6, L6, L6, L6, L6, L6, L6, L6, L6, L6, L6, L6, L6, L6, L6, L6, L6, L6, L6, L6, L6, L6, h, h, h, h, h, h, h, h, h, h, h, h, h, h, h, h, h, h, h, h, h, h, h, h, h, h, h, h, h, h, h, h, h5, h5, h5, h5, h5, h5, h5, h5, h5, h5, h5, h5, h5, h5, h5, h5, h5, h5, h5, h5, h5, h5, h5, h5, h5, h5, h5, h5, h5, h5, h5, h5, Wi, Wi, Wi, Wi, Wi, Wi, Wi, Wi, Wi, Wi, Wi, Wi, Wi, Wi, Wi, Wi, Wi, Wi, Wi, Wi, Wi, Wi, Wi, Wi, Wi, Wi, Wi, Wi, Wi, Wi, Wi, Wi, W1, W1, W1, W1, W1, W1, W1, W1, W1, W1, W1, W1, W1, W1, W1, W1, W1, W1, W1, W1, W1, W1, W1, W1, W1, W1, W1, W1, W1, W1, W1, W1, W2, W2, W2, W2, W2, W2, W2, W2, W2, W2, W2, W2, W2, W2, W2, W2, W2, W2, W2, W2, W2, W2, W2, W2, W2, W2, W2, W2, W2, W2, W2, W2, W3, W3, W3, W3, W3, W3, W3, W3, W3, W3, W3, W3, W3, W3, W3, W3, W3, W3, W3, W3, W3, W3, W3, W3, W3, W3, W3, W3, W3, W3, W3, W3, W4, W4, W4, W4, W4, W4, W4, W4, W4, W4, W4, W4, W4, W4, W4, W4, W4, W4, W4, W4, W4, W4, W4, W4, W4, W4, W4, W4, W4, W4, W4, W4, W5, W5, W5, W5, W5, W5, W5, W5, W5, W5, W5, W5, W5, W5, W5, W5, W5, W5, W5, W5, W5, W5, W5, W5, W5, W5, W5, W5, W5, W5, W5, W5, W6, W6, W6, W6, W6, W6, W6, W6, W6, W6, W6, W6, W6, W6, W6, W6, W6, W6, W6, W6, W6, W6, W6, W6, W6, W6, W6, W6, W6, W6, W6, W6, o2, o2, o2, o2, o2, o2, o2, o2, o2, o2, o2, o2, o2, o2, o2, o2, o2, o2, o2, o2, o2, o2, o2, o2, o2, o2, o2, o2, o2, o2, o2, o2, o5, o5, o5, o5, o5, o5, o5, o5, o5, o5, o5, o5, o5, o5, o5, o5, o5, o5, o5, o5, o5, o5, o5, o5, o5, o5, o5, o5, o5, o5, o5, o5, o6, o6, o6, o6, o6, o6, o6, o6, o6, o6, o6, o6, o6, o6, o6, o6, o6, o6, o6, o6, o6, o6, o6, o6, o6, o6, o6, o6, o6, o6, o6, o6]
And this continues for some time…
I am not a professional at MATLAB by any stretch and would appreciate any help or adivce!

Best Answer

structfun(@(F) double(subs(F, {Var_matrix}, {G_matrix})), Sol, 'uniform', 0)
Related Question