我们都知道 MATLAB 为 MATLAB 函数中用作参数的文件名提供制表符补全功能,例如 importdata,imread. 。我们如何为我们创建的函数做到这一点?

编辑:

alt text

显示当前目录中的文件和文件夹。

有帮助吗?

解决方案

注意:这里不支持的劈

看看你的MATLAB安装文件工具箱\本地\ TC.xml。这似乎包含标签完成参数的类型映射。 (I由刚grepping Matlab的安装为R2009b中 “imread” 发现这一点。)

添加<TC>元素中这条线将让你的文件名的标签,每完成它的参数。

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

这需要修改代替Matlab的安装。对于一些在工具箱/地方,像classpath.txt其他文件,可以通过将修改后的副本在你从运行MATLAB的目录中覆盖它们,但是这并没有为TC.xml为我工作。

其他提示

有是增加你的函数参数Tab补不支持的方法,但一招我用的是把一个“!”在命令的前面,所以它被当作一个系统命令。然后按Tab将完整的文件路径。一旦我的MATLAB命令完成后,我回家行的开头,删除“!”然后按回车。

对于 Matlab 2016a 及以上版本:

从 Matlab 2016a 开始,文件 Tc.xml 不存在。它使用一个 .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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top