matlab中,用roots函数时,出现Subscript indices must either be real positive integers or logicals.

来源:百度知道 编辑:UC知道 时间:2024/06/10 04:15:51
>> p=[1 -8 6 -30];
>> r=roots(p)
??? Subscript indices must either be real positive integers or logicals.
请问这是怎么回事啊,搞不明白

Subscript indices must either be real positive integers or logicals

中文解释:下标索引必须是正整数类型或者逻辑类型

出错原因:在访问矩阵(包括向量、二维矩阵、多维数组,下同)的过程中,下标索引要么从 0 开始,要么出现了负数。注:matlab 的语法规定矩阵的索引从 1 开始,这与 C 等编程语言的习惯不一样。

解决办法:自己调试一下程序,把下标为 0 或者负数的地方修正。

另,我运行上述两句时是正确的,且得到了结果。
>> p=[1 -8 6 -30];
>> r=roots(p)

r =

7.7260
0.1370 + 1.9658i
0.1370 - 1.9658i

>>