Подтвердить что ты не робот

Найти местоположение текущего файла m в MATLAB

Я работаю над своим MATLAB кодом в нескольких разных местах, и это действительно поможет, если я смогу сделать код осознавая свое местоположение на компьютере. Я думаю, что есть функция, которая дает мне именно эту информацию, но я не могу вспомнить, что она называется, или найти ее в Google.

Идея состоит в том, что у меня есть функция myFunc, которая нуждается в файле в своем собственном каталоге, который может находиться в разных местах на разных компьютерах. Поэтому в myFunc я хочу сделать что-то вроде этого:

dir = theFunctionImLookingFor;
system(fullfile(dir, 'someApp.exe'));

(Также может быть, что функция, которую я ищу, не возвращает каталог, но имя каталога + m файла, но это мало чем отличается от меня.)

4b9b3361

Ответ 1

mfilename или лучше mfilename('fullpath')

Ответ 2

При работе с классами мне часто нравится сохранять связанные данные в каталоге классов. Я использую which, чтобы получить путь, а затем fileparts, чтобы отрубить его.

[folder, name, ext] = fileparts(which('object'));

Где "объект" может быть именем функции или класса. Преимущество этого метода для меня заключается в том, что вы можете его вызывать из-за пределов mfile. Это необходимо, если вам нужно получить путь к производному классу из базового класса, например.

Ответ 4

Для этого вы должны использовать mfilename и cd.

mfilename вернет имя исполняемого m файла. cd сам будет печатать текущий каталог