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

Вкладка-заполнение имен файлов в качестве аргументов для сценариев MATLAB

Мы все знаем, что MATLAB обеспечивает выполнение табуляции для имен файлов, используемых в качестве аргументов в функции MATLAB, таких как importdata, imread. Как мы это делаем для создаваемых нами функций?

EDIT:

alt text

Отображает файлы и папки в текущем каталоге.

4b9b3361

Ответ 1

Предостережение: неподдерживаемый взлом здесь.

Взгляните на файл toolbox\local\TC.xml в вашей установке Matlab. Кажется, что они содержат сопоставления типов аргументов для завершения табуляции. (Я нашел это, просто включив установку Matlab для "imread" в R2009b.)

Добавление этой строки внутри элемента <TC> позволит вам выполнить пополнение имени файла для каждого из его аргументов.

<binding name="importdata"        ctype="FILE"/>

Это требует модификации установки Matlab. Для некоторых других файлов в toolbox/local, таких как classpath.txt, вы можете переопределить их, поместив модифицированные копии в каталог, в котором вы запускаете Matlab, но для TC.xml для меня это не работало.

Ответ 2

Нет поддерживаемого способа добавления ваших функций в аргумент Tab, но один трюк, который я использую, - это поставить "!" перед командой, поэтому она рассматривается как системная команда. Затем вкладка завершит пути к файлам. Как только моя команда MATLAB будет завершена, я вернусь к началу строки, удалив "!" и нажмите enter.

Ответ 3

Для Matlab 2016a и выше:

Файл Tc.xml отсутствует в Matlab 2016a и далее. Для достижения этого используется файл .json (Java Script Object Notation). Простым примером этого может быть следующее.

Предположим, что у вас есть файл функции Matlab с именем myFunction.m. Кроме того, предположим, что для этой функции нужны файлы с расширением .ext, и вы хотите, чтобы вкладка-завершение отображала все возможные параметры ввода для этой функции. Затем напишите следующий файл в файле и назовите его functionSignatures.json.

{
"myFunction":
{
  "inputs":
  [
    {"name":"filename", "kind":"required", "type":"filepath=*.ext" }
  ]
}
}

Поместите этот файл в тот же каталог, что и myFunction.m. Теперь перезапустите Matlab.

Что делает этот файл:. При вводе ввода функции после нажатия на вкладке вы увидите список файлов с расширением .ext. Если вы хотите, чтобы все файлы отображались во всплывающем всплывающем окне, независимо от их расширения, замените "type":"filepath=*.ext" на "type":"filepath" в файле functionSignatures.json.

Источник: https://www.mathworks.com/matlabcentral/answers/306157-how-to-configure-tab-completion-for-my-function-in-matlab-2016#answer_237857