如何在结构中显示数值?

81次浏览(过去30天)
大卫•罗杰斯
大卫•罗杰斯 2019年2月4日
回答: 沃尔特·罗伯森 2021年8月2日
我试着解一个方程组。
信谊m F1 F2 l a1 a2
%方程
eqn1 = F1 + F2 -9.81*m == 0;
Eqn2 = a1 + a2 - l == 0;
(2) eqn3 = F2*a2 - F1*a1 = 0;
给出了其中一些变量的值,但有三个是程序要解决的。下面的代码解决了它,但我不能让它显示sol的数值:
m = 1576;
F1 = 4562.3;
l = 2.65;
sol = solve([eqn1, eqn2, eqn3], [F2, a1, a2])
disp (问题1 1:F2, a1, a2的值);
disp (structfun (@double sol));
第4行没有分号——sol在命令窗口中显示为带有3个字段的1x1结构:
索尔=
F2 (1 x1符号):
a1 (1 x1符号):
a2 (1 x1符号):
我如何“转换”sol的场的数值解决方案,我可以显示?万博 尤文图斯

接受的答案

madhan拉维
madhan拉维 2019年2月4日
sol.F2%使用点索引
2的评论
madhan拉维
madhan拉维 2019年2月4日
或者使用具有相同数量的输出参数的vpasolve(),如上面注释所示

登录评论。

答案(1)

沃尔特·罗伯森
沃尔特·罗伯森 2021年8月2日
格式长g
信谊m F1 F2 l a1 a2
%方程
eqn1 = F1 + F2 -9.81*m == 0;
Eqn2 = a1 + a2 - l == 0;
(2) eqn3 = F2*a2 - F1*a1 = 0;
m = 1576;
F1 = 4562.3;
l = 2.65;
sol = solve(subs([eqn1, eqn2, eqn3]), [F2, a1, a2])
索尔=结构体字段:
F2: [1×1 sym] a1: [1×1 sym] a2: [1×1 sym]
disp (structfun (@double溶胶,“统一”, 0));
F2: 10898.26 a1: 1.86800406971028 a2: 0.781995930289718

社区寻宝

在MATLAB Central中找到宝藏,并发现社区可以如何帮助你!

开始狩猎!