我们都知道 MATLAB 为在 MATLAB 函数(如importdata
、imread
. 我们如何为我们创建的函数做到这一点?
编辑:
显示当前目录中的文件和文件夹。
我们都知道 MATLAB 为在 MATLAB 函数(如importdata
、imread
. 我们如何为我们创建的函数做到这一点?
编辑:
显示当前目录中的文件和文件夹。
注意:这里不支持黑客攻击。
查看 Matlab 安装中的文件 toolbox\local\TC.xml。这似乎包含选项卡完成的参数类型映射。(我只是通过在 R2009b 中为“imread”grepping Matlab 安装找到了这一点。)
在元素内添加这一行<TC>
将使您对其每个参数的文件名进行制表符补全。
<binding name="importdata" ctype="FILE"/>
这需要就地修改 Matlab 安装。对于 toolbox/local 中的其他一些文件,例如 classpath.txt,您可以通过将修改后的副本放在启动 Matlab 的目录中来覆盖它们,但这对我来说不适用于 TC.xml。
没有支持将函数添加到参数 Tab 完成的方法,但我使用的一个技巧是放一个“!” 在命令前面,因此它被视为系统命令。然后 Tab 将完成文件路径。一旦我的 MATLAB 命令完成,我回到行首,删除“!” 然后按回车。
对于 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" }
]
}
}
将此文件放在与myFunction.m
文件相同的目录中。现在,重新启动 Matlab。
此文件的作用:在输入函数输入时,按 Tab 键时,您将看到一个带有扩展名的文件列表.ext
弹出。如果您希望所有文件都显示在选项卡完成弹出窗口中,而不管其扩展名如何,请在文件中"type":"filepath=*.ext"
替换为."type":"filepath"
functionSignatures.json