参考:
1.https://ww2.mathworks.cn/help/matlab/ref/exist.html?searchHighlight=exist&s_tid=doc_srchtitle
2.
官方解释:
exist
检查变量、脚本、函数、文件夹或类的存在情况
说明
exist
以数字形式返回 name
name
的类型。此列表描述与每个值关联的类型:
0 -
name
不存在或因其他原因找不到。例如,如果name
存在于 MATLAB 不能访问的受限文件夹中,exist
将返回 0。1 -
name
是工作区中的变量。2 -
name
是扩展名为.m
、.mlx
、 或.mlapp
的文件,name
是具有未注册文件扩展名(.mat
、.fig
、.txt
)的文件的名称。3 -
name
是 MATLAB 搜索路径上的 MEX 文件。4 -
name
是已加载的 Simulink 模型或者位于 MATLAB 搜索路径上的 Simulink 模型或库文件。5 -
name
是内置 MATLAB 函数。这不包括类。6 -
name
是 MATLAB 搜索路径上的 P 代码文件。7 -
name
是文件夹。8 -
name
是类。(如果使用-nojvm
选项启动 MATLAB,则exist
对 Java 类返回 0。)
MATLAB 搜索从搜索路径的顶层开始并向下移动,直到找到结果或到达路径上的最后一个文件夹。如果一个文件夹中存在多个 name
,根据 函数优先顺序,MATLAB 将显示 name
的第一个实例。文件夹是函数优先级规则的例外。除变量和内置函数外,它们的优先级高于所有类型。
例如,如果 name
与一个扩展名为 .m
的文件和一个 P 代码文件均匹配,则 exist
返回 6,即将其识别为 P 代码文件。如果 name
与变量和 P 代码文件均匹配,则 exist 返回 1,即将其识别为变量。如果 name
与文件夹和 MATLAB 函数均匹配,则 exist
返回 7
,即将其识别为文件夹。
exist
返回 name
searchType
name
的类型,从而将结果限定为指定的类型 searchType
。如果 searchType
类型的 name
不存在,则 MATLAB 返回 0
。
示例
检查工作区变量是否存在
创建一个名为 testresults
的变量,然后确认它是否存在于工作区中。
testresults = magic(5);
exist testresults
ans = 1
名为 testresults
的变量存在于工作区中。
检查文件夹是否存在
创建文件夹 myfolder
,然后检查它是否作为文件夹存在。
mkdir myfolder;
exist myfolder dir
ans = 7
如果您指定类型为 file
,MATLAB 将同时搜索文件和文件夹,因此返回相同的结果。
exist myfolder file
ans = 7
检查 MATLAB 函数是否为内置函数
输入参数
name
- 变量、脚本、函数、文件夹或类的名称
字符向量 | 字符串标量
变量、脚本、函数、文件夹或类的名称,指定为字符向量或字符串标量。
name
可以包含部分路径,但必须为以下各项之一:
搜索路径上的一个文件夹
搜索路径上的一个文件夹中的内容
当前文件夹
当前文件夹中的内容
路径上文件夹的子文件夹不被搜索。
否则,name
必须包括完整路径。
如果 name
指定的文件具有未注册的文件扩展名(.mat
、.fig
、.txt
),则要包括扩展名。您还可以包括扩展名以防与其他类似文件名冲突。例如,exist file.txt
或 exist("file.txt")
。
注意
MATLAB 不检查文件的内容或内部结构,而只依赖文件扩展名进行分类。
数据类型: char
| string
searchType
- 要搜索的结果的类型
builtin
| class
| dir
| file
| var
要搜索的结果的类型,指定为下列值之一:
searchType | 说明 | 可能的返回值 |
---|---|---|
|
只检查内置函数。 |
5、0 |
|
只检查类。 |
8、0 |
|
只检查文件夹。 |
7、0 |
|
只检查文件或文件夹。 |
2、3、4、6、7、0 |
|
只检查变量。 |
1、0 |
替代功能
在 R2006a 之前推出
如果官方解释还不够清楚,下面是参考的一篇博文
MATLAB中exist函数的用法
exist:
exist主要有两种形式,一个参数和两个参数的,作用都是用于确定某值是否存在:
1. b = exist( a)
若 a 存在,则 b = 1; 否则 b = 0;
2. b = exist( 'name', 'kind')
kind 表示 name 的类型,可以取的值为:builtin(内建类型),class(类),dir(文件夹),file(文件或文件夹),var(变量)。
cell:
cell 是 matlab 中的一种数据类型,用{}来定义, {}内可以放任何类型的数据和矩阵
1. A = {[ 2, 4]} 就表示新建了一个 cell 类型的变量,这个变量包含一个 2 * 1 的矩阵,要引用 cell 类型的话,直接用下标来引用,
如:A{1} 就可以得到[ 2, 4] 这个矩阵了。
2. 在上述的 A 中增加一个元素:(有两种方法实现)
(1).B(2) = { ‘SecondElement’};
(2).B{2} = ‘SecondElement’;
3.cell 函数:
B = cell(100, 1)
表示 给 B 赋予100 * 1 个cell元素,但未赋值