Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
回复
 
主题工具 显示模式
旧 2019-12-14, 20:13   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 如何从MATLAB的stepinfo输出中提取数据成员?

当stepinfo函数在传递函数(即stepinfo(tf) )上运行时,典型结果是:

RiseTime: 52.2052 SettlingTime: 85.4916 SettlingMin: 0.9041 SettlingMax: 1.0012 Overshoot: 0.1192 Undershoot: 0 Peak: 1.0012 PeakTime: 132.8773 我对stepinfo进行了一些研究。似乎它返回一个结构。所以我将上述结果分配给一个变量,并使用size()检查了它的大小。这是一个1x1的矩阵。

这让我非常确信,如果不首先将其分配给字符串然后执行字符串操作,就无法从该结构中提取单个数据成员。

我需要Overshoot和PeakTime值,有人知道在不使用PO和Tp公式的情况下-并且没有巨大的字符串混乱的情况下获取这些值的最佳方法吗?



回答:

MATLAB中的所有内容均视为矩阵。单个结构元素(在示例中为stepinfo返回的stepinfo )是struct类型的1比1矩阵。您可以像这样访问结构的字段:

S = stepinfo(sys); %# Returns a structure, stored in variable S overShoot = S.Overshoot; %# Get the value in the Overshoot field peakTime = S.PeakTime; %# Get the value in the PeakTime field 有关使用结构的更多信息,请查看此文档页面



更多&回答...
poster 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 23:21


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.