Templates 如何在MATLAB中重写默认文本

Templates 如何在MATLAB中重写默认文本,templates,matlab,Templates,Matlab,在MATLAB中,当您单击文件->新建->函数M-File时,您会得到一个包含以下内容的文件: function [ output_args ] = Untitled( input_args ) %UNTITLED Summary of this function goes here % Detailed explanation goes here end 是否可以覆盖此行为并指定您自己的文本 (动机是我试图说服我的同事更彻底地记录他们的m文件,让他们填写默认文本可能会鼓励他们。)我甚

在MATLAB中,当您单击文件->新建->函数M-File时,您会得到一个包含以下内容的文件:

function [ output_args ] = Untitled( input_args )
%UNTITLED Summary of this function goes here
%   Detailed explanation goes here


end
是否可以覆盖此行为并指定您自己的文本


(动机是我试图说服我的同事更彻底地记录他们的m文件,让他们填写默认文本可能会鼓励他们。)

我甚至不知道File->New->Function会这么做

我解决这个问题的方法是编写一个函数,通过

>>newFunction myNewFunctionName
那么

  • 弹出一个inputdlg窗口,要求用户提供概要和H1行,并允许编写帮助来解释输入和输出参数。在这里,用户还可以选择myNewFunctionName是函数还是类,以便选择正确的头和“函数调用”
  • 检查同名函数是否已存在
  • 请求一个文件夹来保存函数,以及
  • 在编辑器中打开该函数
  • 标题设置为便于填写有关输入和输出的信息。它还会自动列出创建文件的人的用户名以及日期和Matlab版本

    编辑 对于新类,模板函数会自动确保它们是我的通用超类的子类,该类实现了诸如“help”(调用
    doc(class(obj))
    )之类的方法

    现在,如果模板函数也将编写函数的算法部分,那将非常方便。:)

    EDIT2
    是指向文件交换上函数的链接

    我建议您创建自己的默认m文件模板,例如名为
    default.m
    ,并将其放置在您的同事可以访问的文件夹中。然后应将该文件设置为只读。当您的同事想要创建新函数m-file时,他们可以在MATLAB命令窗口中执行以下任一命令:

    open default.m
    open('default.m')
    edit default.m
    edit('default.m')
    

    函数和将在MATLAB编辑器中打开一个文件。由于文件
    default.m
    是只读的,如果有人试图在上面保存,他们将得到一个对话框,警告他们这样做,并要求他们保存到一个新文件(或覆盖它)。这应该可以防止他们意外修改模板。

    我搜索了从matlabroot文件夹开始的所有文本文件,但没有找到该模板。似乎是硬编码的,这很奇怪


    我喜欢乔纳斯。作为我的两分钱,你可以从下载一个函数(不是我的),通过一些定制来做类似的事情。

    经过深思熟虑,我想出了一个我很满意的解决方案,结合了Jonas和gnovice的答案。它是一个创建新m文件(带有模板文档)并在编辑器中打开的函数。可从Matlab Central获得。

    这是哪个版本的Matlab?@Jacob:它在
    R2008b
    (及更高版本)中工作,但在
    R2007b
    中不工作。我手头没有
    R2008a
    可供检查。谢谢,这是一个相当新颖的解决方案。也许函数编写器GUI可以很好地实现这一点。但我觉得重要的是不要低估懒惰/憎恨文档的因素。这似乎比用为我编写的东西单击“文件->新建->函数”更费劲。@Richie Cotton:该函数被称为“codeTemplate myNewFunction”,然后通过inputdlg向用户请求额外的输入。我需要H1线,以便有一些最小值documentation@Richie科顿:我更新了我的答案。我不认为这比单击文件->新建->函数更重要,尽管您可以跳过弹出对话框窗口的步骤。但是,除了需要H1行之外,它实际上比Matlab默认值的工作量要少,因为您不需要到处用“myFunctionName”替换“untitled”。@Jonas:您考虑过将函数放在文件交换上吗?我刚刚想到的另一个好主意是创建一个调用函数的快捷方式,因此,只需单击一下即可打开文件。正如我所说,永远不要低估懒惰…@yuk:第二个链接被我的互联网过滤器屏蔽,声称是恶意软件;你确定这是对的吗?@Richie:从我的工作和家里都可以。这只是一个Matlab博客:一定是一个工作中过于热心的过滤器;家里开门很好。使用
    com.mathworks.mlservices.MLEditorServices.newDocument(str)
    将模板直接放入编辑器是很有趣的。@gnovice:我喜欢这样做不会造成干扰,而且很容易做到。但它的缺点是需要用户手动填写所有内容。