How do I display numeric values in a struct?
9 次查看(过去 30 天)
显示 更早的评论
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?
采纳的回答
madhan ravi
2019-2-4
sol.F2 % use dot indexing
2 个评论
madhan ravi
2019-2-4
or use vpasolve() with same number of output arguments as shown in the above comment
更多回答(1 个)
Walter Roberson
2021-8-2
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 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Assumptions 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!