How do I display numeric values in a struct?
9 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
David Rogers
el 4 de Feb. de 2019
Respondida: Walter Roberson
el 2 de Ag. de 2021
I'm trying to solve a system of equations.
syms m F1 F2 l a1 a2
%Equations
eqn1 = F1 + F2 -9.81*m == 0;
eqn2 = a1 + a2 - l == 0;
eqn3 = F2*a2 - F1*a1 == 0;
The values for some of these variables are given, but three are to be solved by the program. The following code solves it, but I can't get it to display the numerical values of sol:
m = 1576;
F1 = 4562.3;
l = 2.65;
sol = solve([eqn1, eqn2, eqn3], [F2, a1, a2])
disp('Problem1 1: Values of F2, a1, a2');
disp(structfun(@double, sol));
No semicolon for line 4 here - sol displays in the command window as a 1x1 struct with 3 fields:
sol =
F2: [1x1 sym]
a1: [1x1 sym]
a2: [1x1 sym]
How do I "convert" the fields of sol to numerical solutions I can display?
1 comentario
Respuesta aceptada
madhan ravi
el 4 de Feb. de 2019
sol.F2 % use dot indexing
2 comentarios
madhan ravi
el 4 de Feb. de 2019
or use vpasolve() with same number of output arguments as shown in the above comment
Más respuestas (1)
Walter Roberson
el 2 de Ag. de 2021
format long g
syms m F1 F2 l a1 a2
%Equations
eqn1 = F1 + F2 -9.81*m == 0;
eqn2 = a1 + a2 - l == 0;
eqn3 = F2*a2 - F1*a1 == 0;
m = 1576;
F1 = 4562.3;
l = 2.65;
sol = solve(subs([eqn1, eqn2, eqn3]), [F2, a1, a2])
disp(structfun(@double, sol, 'uniform', 0));
0 comentarios
Ver también
Categorías
Más información sobre Assumptions en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!