существовать

Проверяйте существование переменной, скрипта, функции, папки или класса

Синтаксис

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 является файл MEX на вашем пути поиска файлов MATLAB.

  • 4 — name является загруженной моделью Simulink® или моделью Simulink или файлом библиотеки на вашем пути поиска файлов MATLAB.

  • 5 — name является встроенная функция MATLAB. Это не включает классы.

  • 6 — name является Pcode-файл на вашем пути поиска файлов MATLAB.

  • 7 — name является папкой.

  • 8 — name является классом. (exist возвращается 0 для классов Java, если вы запускаете MATLAB с опции -nojvm.)

Достигнуты поисковые запросы MATLAB, запускающиеся наверху пути поиска файлов и спускающиеся, пока результат не найден или последняя папка на пути. Если больше чем один name существует в папке, MATLAB отображает первую инстанцию name, согласно Порядку приоритета функций. Папки являются исключением к функциональным правилам приоритета. У них есть приоритет по всем типам за исключением переменных и встроенных функций.

Например, если name совпадает и с файлом расширению .m и с Pcode-файлом, то exist возвращается 6, идентифицируя его как Pcode-файл. Если name соответствия и переменная и Pcode-файл, существует, возвращается 1, идентифицируя его как переменную. Если name совпадает и с папкой и с функцией MATLAB, exist возвращает 7, идентифицируя его как папку.

пример

exist name searchType возвращает тип name, ограничивая результаты заданным типом, searchType. Если name типа, searchType не существует, 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

Проверяйте, является ли функция plot встроенной функцией или файлом.

A = exist('plot')
A = 5

Это указывает, что plot является встроенная функция MATLAB.

Входные параметры

свернуть все

Имя переменной, скрипта, функции, папки или класса, заданного как вектор символов или скаляр строки.

name может включать частичный путь, но должен быть одним из них:

  • Папка на пути поиска файлов

  • В папке на пути поиска файлов

  • Текущая папка

  • В текущей папке

Подпапки папок на пути не ищутся.

В противном случае name должен включать полный путь.

Если name задает файл с незарегистрированным расширением файла (.mat, .fig, .txt), включайте расширение. Можно также включать расширение, чтобы предотвратить конфликт с другими подобными именами файлов. Например, exist file.txt или exist("file.txt").

Примечание

MATLAB не исследует содержимое или внутреннюю структуру файла и полагается только на расширение файла для классификации.

Типы данных: char | string

Тип результатов искать, заданный как одно из этих значений:

searchType ОписаниеВозможные возвращаемые значения

builtin

Проверки только на встроенные функции.

5, 0

class

Проверки только на классы.

8, 0

dir

Проверки только на папки.

7, 0

file

Проверки только на файлы или папки.

2, 3, 4, 6, 7, 0

var

Проверки только на переменные.

1, 0

Альтернативная функциональность

  • Чтобы проверять существование файла или папки, также можно использовать функции isfile или isfolder. exist ищет файлы и папки на пути поиска файлов, который может привести к неожиданным результатам. isfolder и isfile ищут файлы или папки только на заданном пути или в текущей папке, которая может привести к более ясным и более быстрым результатам.

Представлено до R2006a