How do I display numeric values in a struct?
조회 수: 10 (최근 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!