登录论坛

查看完整版本 : 如何从MATLAB的stepinfo输出中提取数据成员?


poster
2019-12-14, 20:13
当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 (http://www.mathworks.com/help/control/ref/stepinfo.html)返回的stepinfo (http://www.mathworks.com/help/control/ref/stepinfo.html) )是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 有关使用结构的更多信息,请查看此文档页面 (http://www.mathworks.com/help/matlab/structures.html) 。



更多&回答... (https://stackoverflow.com/questions/5069373)