Jac*_*cob 21 matlab filenames tab-completion
我们都知道MATLAB提供标签完成了用作像MATLAB函数参数的文件名importdata,imread.我们如何为我们创建的功能做到这一点?
编辑:

显示当前目录中的文件和文件夹.
And*_*nke 22
警告:此处不支持hack.
在Matlab安装中查看文件toolbox\local\TC.xml.这似乎包含选项卡完成的参数类型映射.(我在R2009b中仅仅为了"imread"的Matlab安装而找到了这个.)
在<TC>元素中添加此行将为您的每个参数提供tab-completion文件名.
<binding name="importdata" ctype="FILE"/>
Run Code Online (Sandbox Code Playgroud)
这需要修改Matlab安装.对于toolbox/local中的一些其他文件,比如classpath.txt,您可以通过将修改后的副本放在从Matlab启动的目录中来覆盖它们,但这对我来说不适用于TC.xml.
没有支持的方法将函数添加到参数Tab完成,但我使用的一个技巧是放一个"!" 在命令前面,所以它被视为系统命令.然后,Tab将完成文件路径.一旦我的MATLAB命令完成,我回到行的开头,删除"!" 然后按Enter键.
对于 Matlab 2016a 及更高版本:
从 Matlab 2016a 开始,文件 Tc.xml 不存在。它使用.json(Java Script Object Notation)文件来实现相同的目的。一个简单的例子如下。
假设您有一个名为myFunction.m. 此外,假设此函数需要带有扩展名的文件.ext作为输入,并且您希望制表符完成显示此函数的所有可能的输入选项。然后,将以下内容写入文件并命名为functionSignatures.json.
{
"myFunction":
{
"inputs":
[
{"name":"filename", "kind":"required", "type":"filepath=*.ext" }
]
}
}
Run Code Online (Sandbox Code Playgroud)
将此文件放在与文件相同的目录中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