MATLAB输出[0 x1 double]的含义及产生原因是什么
MATLAB返回0×1 double结果的原因说明
- 0×1 double是MATLAB对空double类型数组的标准描述:该数组行维度为0、列维度为1,内部不包含任何数值元素,通常用于表示「不存在对应结果」的合法返回值,不属于程序报错。
针对你提供的示例代码,出现该结果的具体原因如下:
你给出的代码构造的传递函数代入参数后为:
H(s) = -1/(0.001*s)
zpkdata(sys)函数的作用是返回线性系统的零点z、极点p、增益k三个核心参数:
- 零点的定义是让传递函数分子多项式等于0的s取值,你构造的是纯积分环节,分子为常数-1,不存在满足条件的s值,也就是系统没有零点,因此零点返回值
z为合法的空数组0×1 double - 剩余返回结果为正常值:极点
p为0(对应积分环节的s=0极点),增益k为-1000,符合系统理论计算结果
MATLAB中常见的返回空数组的场景还包括:
- 使用
find函数查找不存在的满足条件的元素 - 索引超出数组的有效范围
- 筛选空数据集的对应维度结果
内容的提问来源于stack exchange,提问作者user10799430
相关产品推荐
相关产品推荐

