matlab中变量问题——readonly 索引超出矩阵维度 workspacefunc 215

    

matlab程序运行过程中会出现如上提示,在网上检索未果,键入dbstop if error语句也无法定错误之处,就想这个错误不是一般的错误。

通过间隔打断点的方式最后定位错误为一句exist = find(a == 0);应该返回索引,结果返回结果全部为零,猜想是不是exist这个变量的问题,故将其改名为exist_1,结果程序正常执行,搜索发现,原来是exist为matlab中一个函数,这里相当于重载?反正是非正常使用函数名称。最后程序正常运行。

exist函数:
作用:判断某个变量,函数,类,文件夹等参数是否存在。
定义形式:A=exists("name","kind"),name可以是变量,函数,类,文件夹等;
kind代表name的类型,可取值为var,function,class,folder等(具体参照MATLAB的帮助文档)
返回值的含义如下:
0 不存在则返回值
1 name 可以是变量名,如果存在,返回值
2 函数名、m 文件名,存在则返回值
3 mex 文件、dll 文件,存在则返回值
4 内嵌的函数,存在则返回值
5 p码文件 , 存在则返回值
6 目录,存在则返回值
7 路径,存在则返回值
8 Java class,存在则返回值

应用举例:
exist('testresults','var')
ans =
1

exist('testresults','dir')
ans =
7

exist定义原文:https://blog.csdn.net/u011817406/article/details/79216286

猜你喜欢

转载自www.cnblogs.com/10081-AA/p/10539446.html