关闭

matlab错误:Subscript indices must either be real positive integers or logicals.

4899人阅读 评论(1) 收藏 举报
分类:

这两天调试matlab程序的过程中,遇到一bug:
Subscript indices must either be real positive integers or logicals.

其中文解释很容易理解,即:
下标索引必须是正整数类型或者逻辑类型。

出错原因

1)在访问矩阵(包括向量、二维矩阵、多维数组,下同)的过程中,下标索引要么从 0 开始,要么出现了负数。

注:matlab 的语法规定矩阵的索引从 1 开始,这与 C 等编程语言的习惯不一样。
2)调用某个matlab内部函数时(该函数有输入参数),若工作空间中有一个与该函数同名的变量(向量、矩阵等)。

注:matlab会把该调用函数的命令当成是引用该变量的命令,该函数的输入参数被当成是该变量的索引,如果输入参数非正整数或逻辑值,则会出现上述错误,即使输入参数为正整数或逻辑值,不提示上述错误,由于初衷是调用函数,变成引用变量,也会造成程序错误。

解决办法

1)调试程序,把下标为 0 或者负数的地方修正。
2)在定义变量名时,一定不要定义成与函数名相同的名字。

2
1

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:38026次
    • 积分:794
    • 等级:
    • 排名:千里之外
    • 原创:42篇
    • 转载:3篇
    • 译文:0篇
    • 评论:9条
    文章分类
    最新评论