如何从MATLAB中的stepinfo输出中提取数据成员?

时间:2011-02-21 17:51:09

标签: matlab matlab-struct

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值,是否有人知道在不使用P.O.的情况下获取这些值的最佳方法。和Tp公式 - 没有巨大的字符串混乱?

1 个答案:

答案 0 :(得分:4)

MATLAB中的所有内容都被视为矩阵。单个结构元素(在您的示例中由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

有关使用结构的更多信息,请查看this documentation page