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

原文地址:https://www.cnblogs.com/10081-AA/p/10539446.html