Дополнение имен файлов в качестве аргументов для сценариев MATLAB - PullRequest
21 голосов
/ 03 декабря 2009

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

EDIT:

alt text

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

Ответы [ 3 ]

22 голосов
/ 04 декабря 2009

Осторожно: здесь не поддерживается хак.

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

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

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

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

5 голосов
/ 04 декабря 2009

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

3 голосов
/ 19 января 2017

Для 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.

Что делает этот файл: При вводе в функции ввода после нажатия клавиши Tab вы увидите список файлов с расширением .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

...