matlab错误:Subscript indices must either be real positive integers or logicals.
2016-06-01 09:58
429 查看
这两天调试matlab程序的过程中,遇到一bug:
Subscript indices must either be real positive integers or logicals.
其中文解释很容易理解,即:
下标索引必须是正整数类型或者逻辑类型。
注:matlab 的语法规定矩阵的索引从 1 开始,这与 C 等编程语言的习惯不一样。
2)调用某个matlab内部函数时(该函数有输入参数),若工作空间中有一个与该函数同名的变量(向量、矩阵等)。
注:matlab会把该调用函数的命令当成是引用该变量的命令,该函数的输入参数被当成是该变量的索引,如果输入参数非正整数或逻辑值,则会出现上述错误,即使输入参数为正整数或逻辑值,不提示上述错误,由于初衷是调用函数,变成引用变量,也会造成程序错误。
2)在定义变量名时,一定不要定义成与函数名相同的名字。
Subscript indices must either be real positive integers or logicals.
其中文解释很容易理解,即:
下标索引必须是正整数类型或者逻辑类型。
出错原因
1)在访问矩阵(包括向量、二维矩阵、多维数组,下同)的过程中,下标索引要么从 0 开始,要么出现了负数。注:matlab 的语法规定矩阵的索引从 1 开始,这与 C 等编程语言的习惯不一样。
2)调用某个matlab内部函数时(该函数有输入参数),若工作空间中有一个与该函数同名的变量(向量、矩阵等)。
注:matlab会把该调用函数的命令当成是引用该变量的命令,该函数的输入参数被当成是该变量的索引,如果输入参数非正整数或逻辑值,则会出现上述错误,即使输入参数为正整数或逻辑值,不提示上述错误,由于初衷是调用函数,变成引用变量,也会造成程序错误。
解决办法
1)调试程序,把下标为 0 或者负数的地方修正。2)在定义变量名时,一定不要定义成与函数名相同的名字。
相关文章推荐
- Matlab 图像预处理
- MATLAB的乱七八糟问题
- Java 调用Matlab
- matlab乘与点乘的区别 (*与.* ^与.^)
- 线性回归代码matlab
- Matlab 提取二值图像中心线 (Matlab extract centreline of binary image)
- matlab绘图之title函数
- MATLAB实现频数直方图——hist的使用
- word中matlab的图片,转为pdf格式时失真如何解决?
- 深度学习的几种库
- matlab gui的handlevisibility属性
- 关于Matlab编译生成jar包时出现错误的解决办法
- matlab 调用dos命令和文件操作
- matlab图像复原
- matlab图像恢复程序实例
- MATLAB绘制caffe训练日志曲线
- MATLAB图像平滑与滤波实验
- K均值聚类算法及MATLAB函数使用
- MATLAB 图像的归一化
- 在matlab中配置vlfeat