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

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

Синтаксис

exist name
exist name searchType
A = exist(___)

Описание

пример

exist name возвращает тип name как номер. Этот список описывает тип, сопоставленный с каждым значением:

  • 0 — name не существует или не может быть найден по другим причинам. Например, если name существует в ограниченной папке, к которой MATLAB® не имеет доступа, exist возвращается 0.

  • 1 — name является переменной в рабочей области.

  • 2 — name является файлом с дополнительным .m m. mlx, или .mlapp или name являются именем файла с незарегистрированным расширением файла (.mat, .fig, .txt 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, идентифицируя его как папку.

пример

имяsearchType exist возвращает тип 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") txt .

Примечание

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

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

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

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

встроенный

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

5, 0

класс

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

8, 0

dir

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

7, 0

file

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

2, 3, 4, 6, 7, 0

var

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

1, 0

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

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

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

Была ли эта тема полезной?