Вкладка-заполнение имен файлов в качестве аргументов для сценариев MATLAB
Мы все знаем, что MATLAB обеспечивает выполнение табуляции для имен файлов, используемых в качестве аргументов в функции MATLAB, таких как importdata
, imread
. Как мы это делаем для создаваемых нами функций?
EDIT:
![alt text]()
Отображает файлы и папки в текущем каталоге.
Ответы
Ответ 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