2010-03-31 7 views
6

In MATLAB außer Kraft zu setzen, wenn Sie auf Datei -> Neu -> Funktion M-Datei, erhalten Sie eine Datei mit folgendem Inhalt:Wie wird den Standardtext in MATLAB

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


end 

Ist es möglich, diese zu überschreiben Verhalten, und spezifizieren Sie Ihren eigenen Text?

(Die Motivation ist, dass ich versuche, meine Kollegen zu überzeugen, ihre m-Dateien genauer zu dokumentieren und Standardtext mit ihnen, sie füllen könnten ermutigen.)

+0

Welche Version von MATLAB ist das? – Jacob

+0

@Jacob: Es funktioniert in 'R2008b' (und später), aber nicht in' R2007b'. Ich habe 'R2008a' nicht zur Hand, um es zu überprüfen. –

+0

Es ist ein Negativ auf R2008a. – Adrian

Antwort

6

ich nicht einmal wusste, Datei-> Neu-> Funktion hat das getan.

So wie ich das Problem gelöst war, eine Funktion zu schreiben, die Sie über

>>newFunction myNewFunctionName 

nennen es dann

  1. oben knallt ein inputdlg Fenster, die den Benutzer für die Zusammenstellung und die H1 fragt Zeile und ermöglicht es bereits, Hilfe zu schreiben, um Eingabe- und Ausgabeargumente zu erklären. Dort wählt der Benutzer auch aus, ob myNewFunctionName eine Funktion oder eine Klasse ist, um den richtigen Header und 'Funktionsaufruf' zu wählen.
  2. prüft ob bereits eine gleichnamige Funktion existiert
  3. fragt nach einem Ordner zum Speichern der Funktion und
  4. öffnet die Funktion im Editor

der Header gesetzt ist, so dass es einfach ist, in Informationen über Ein- und Ausgabe zu füllen. Es listet automatisch auch den Benutzernamen der Person, die die Datei erstellt hat, sowie das Datum und die Matlab-Version auf.

EDIT Für neue Klassen macht die Template-Funktion automatisch sicher, dass sie meine allgemeine geordnete Klasse Unterklasse, die Methoden wie ‚Hilfe‘

Jetzt auch wenn die Vorlage functionwould den Algorithmus schreiben (die doc(class(obj)) nennt) implementiert Teil der Funktion wäre es wirklich praktisch. :)

EDIT2 Here ist ein Link auf die Funktion auf dem Dateiaustausch.

+0

Danke, das ist eine ganz neue Lösung. Vielleicht könnte eine GUI für den Funktionsgenerator dies gut umsetzen. Ich finde es wichtig, die Faulheit/den Hass des Dokumentationsfaktors nicht zu unterschätzen. Es scheint immer noch mehr Aufwand zu sein, als auf Datei-> Neu-> Funktion-mit-Zeug-für-mich-geschrieben zu klicken. –

+0

@Richie Cotton: Die Funktion heißt 'codeTemplate myNewFunction' und fragt dann den Benutzer nach der zusätzlichen Eingabe über inputdlg. Ich benötige die H1-Linie, so dass es einige minimale Dokumentation gibt. – Jonas

+0

@Richie Cotton: Ich habe meine Antwort ein wenig aktualisiert. Ich denke nicht, dass dies mehr als das Klicken auf Datei-> Neu-> Funktion ist, obwohl Sie den Schritt überspringen könnten, wo das Dialogfenster erscheint. Abgesehen von der Verwendung der H1-Linie ist es jedoch weniger Arbeit als die Matlab-Vorgabe, da Sie "untitled" nicht überall durch "myFunctionName" ersetzen müssen. – Jonas

2

Ich würde vorschlagen, Ihre eigene Standard-M-Datei Vorlage, genannt zum Beispiel, und platzieren Sie es in einem Ordner auf der , wo Ihre Kollegen zugreifen können. Sie sollten die Datei dann als schreibgeschützt festlegen. Ihre Kollegen können dann eine der folgenden Befehle im Fenster MATLAB-Befehl ausgeführt wird, wenn sie eine neue Funktion m-Datei erstellen möchten:

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

Die Funktionen OPEN und EDIT öffnet eine Datei in der MATLAB-Editor. Da die Datei default.m schreibgeschützt ist, wird ein Dialogfeld angezeigt, in dem Benutzer darüber informiert werden, dass sie in einer neuen Datei gespeichert oder überschrieben werden sollen. Das sollte verhindern, dass sie die Vorlage versehentlich ändern.

+0

@gnovice: Ich mag, dass dies nicht aufdringlich ist, und dass es einfach ist. Es hat jedoch den Nachteil, dass der Benutzer alles manuell ausfüllen muss. –

1

Ich durchsucht alle Textdateien ab Matlabroot-Ordner, konnte aber diese Vorlage nicht finden. Es scheint hart codiert zu sein, was seltsam ist.

Ich mag Jonas approach. Als meine zwei Cent, können Sie eine Funktion (nicht meins) herunterladen, die ähnliche Dinge mit einer Anpassung von here tun.

+0

@yuk: Dieser zweite Link wird von meinem Internetfilter blockiert und behauptet, er sei Malware; Bist du sicher, dass es korrekt ist? –

+0

@Richie: Geöffnet von meiner Arbeit und zu Hause. Es ist nur ein Matlab Blog: http://msbs.ca/matlab/ – yuk

+0

Muss nur ein übereifriger Filter bei der Arbeit sein; es öffnet sich gut zu Hause. Die Verwendung von 'com.mathworks.mlservices.MLEditorServices.newDocument (str)', um die Vorlage direkt in den Editor zu stellen, ist interessant. –

0

Nach mehr Nachdenken, habe ich eine Lösung gefunden, mit der ich zufrieden bin und die Antworten von Jonas und gnovice kombiniere. Es ist eine Funktion, die eine neue m-Datei (mit einer Vorlage-Dokumentation) erstellt und sie im Editor öffnet. Es ist verfügbar von Matlab Central File Exchange.

Verwandte Themen