MATLAB中 exist函数用法
目录
语法
说明
示例
检查工作区变量是否存在
检查文件夹是否存在
检查 MATLAB 函数是否为内置函数
exist函数的功能是检查变量、脚本、函数、文件夹或类的存在情况。
语法
exist name
exist name searchType
A = 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。
A = exist(___) 将 name 的类型返回到 A。
示例
检查工作区变量是否存在
创建一个名为 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 函数是否为内置函数
检查 plot 函数是内置函数还是文件。
A = exist('plot')
A = 5
这表明 plot 是一个 MATLAB 内置函数。
参数说明
name
— 变量、脚本、函数、文件夹或类的名称
变量、脚本、函数、文件夹或类的名称,指定为字符向量或字符串标量。
name 可以包含部分路径,但必须为以下各项之一:
-
搜索路径上的一个文件夹
-
搜索路径上的一个文件夹中的内容
-
当前文件夹
-
当前文件夹中的内容
路径上文件夹的子文件夹不被搜索。
否则,name
必须包括完整路径。
如果 name 指定的文件具有未注册的文件扩展名(.mat、.fig、.txt),则要包括扩展名。您还可以包括扩展名以防与其他类似文件名冲突。例如,exist file.txt 或 exist("file.txt")。
searchType
— 要搜索的结果的类型
要搜索的结果的类型,指定为下列值之一:
searchType | 描述 | 可能的返回值 |
---|---|---|
builtin | 只检查内置函数。 | 5、0 |
class | 只检查类。 | 8、0 |
dir | 只检查文件夹。 | 7、0 |
file | 只检查文件或文件夹。 | 2、3、4、6、7、0 |
var | 只检查变量。 | 1、0 |
替代功能
-
要检查文件或文件夹是否存在,还可以使用 isfolder 或 isfile 函数。exist 搜索位于搜索路径上的文件和文件夹,这可能会导致意外结果。isfolder 和 isfile 仅在指定路径或当前文件夹中搜索文件或文件夹,这样可以更快地获得更明确的结果。