2010-03-31 13 views
6

In MATLAB, quando si fa clic su File -> Nuovo -> funzione M-file, si ottiene un file con il seguente contenuto:Come ignorare il testo predefinito in MATLAB

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


end 

E 'possibile ignorare questo comportamento e specificare il proprio testo?

(La motivazione è che sto cercando di convincere i miei colleghi per documentare le loro M-file più a fondo, e avendo testo predefinito per loro di riempire in loro potrebbe incoraggiare.)

+0

Quale versione di MATLAB è questa? – Jacob

+0

@Jacob: Funziona in 'R2008b' (e versioni successive), ma non in' R2007b'. Non ho 'R2008a' a portata di mano per controllare. –

+0

È negativo su R2008a. – Adrian

risposta

6

io non sapevo nemmeno File-> New-> Function lo ha fatto.

Il modo in cui ho risolto il problema era quello di scrivere una funzione che si chiama via

>>newFunction myNewFunctionName 

E poi

  1. apre una finestra inputdlg, che chiede all'utente per la sinossi e la H1 linea e consente di scrivere già aiuto per spiegare argomenti di input e output. Qui, l'utente seleziona anche se myNewFunctionName è una funzione o una classe per scegliere l'intestazione corretta e 'chiamata funzione'
  2. controlla se esiste già una funzione con lo stesso nome
  3. chiede una cartella per salvare la funzione e
  4. apre la funzione nell'editor

l'intestazione è impostato in modo che è facile da compilare informazioni di input e output. Elenca automaticamente anche il nome utente della persona che ha creato il file, nonché la data e la versione di Matlab.

EDIT Per le nuove classi, la funzione di modello assicura automaticamente che essi sottoclasse mia superclasse generale che implementa metodi come 'aiuto' (che chiama doc(class(obj)))

Ora, se il modello functionwould anche scrivere l'algoritmo parte della funzione, sarebbe davvero conveniente. :)

EDIT2 Here s' un collegamento alla funzione sullo scambio di file.

+0

Grazie, è una soluzione piuttosto innovativa. Forse una GUI di scrittori di funzioni potrebbe implementarlo in modo appropriato. Ritengo che sia importante non sottovalutare la pigrizia/odio del fattore di documentazione. Sembra ancora più difficile che fare clic su File-> Nuovo-> Funzione-con-roba-scritta-per-me. –

+0

@Richie Cotton: la funzione viene chiamata 'codeTemplate myNewFunction' e richiede all'utente l'input aggiuntivo tramite inputdlg. Richiedo la linea H1 in modo che ci sia una documentazione minima – Jonas

+0

@Richie Cotton: ho aggiornato la mia risposta un po '. Non penso che questo sia più complicato di fare clic su File-> Nuovo-> Funzione, sebbene tu possa saltare il passaggio in cui si apre la finestra di dialogo. Tuttavia, oltre a richiedere la linea H1, in realtà è meno lavoro rispetto al default di Matlab, dal momento che non è necessario sostituire "senza titolo" con "myFunctionName" ovunque. – Jonas

2

Suggerisco di creare il proprio modello di file m predefinito, ad esempio default.m, e di inserirlo in una cartella su dove i colleghi possono accedervi. Dovresti quindi impostare il file in sola lettura. I suoi colleghi possono quindi eseguire uno qualsiasi dei seguenti comandi nella finestra di comando MATLAB quando vogliono creare una nuova funzione M-file:

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

Le funzioni OPEN e EDIT aprirà un file nell'editor MATLAB. Poiché il file default.m è di sola lettura, se qualcuno tenta di salvarlo su di esso riceverà una finestra di dialogo che li avviserà come tali e chiederà loro di salvarlo in un nuovo file (o sovrascriverlo). Questo dovrebbe impedire loro di modificare accidentalmente il modello.

+0

@gnovice: Mi piace che questo non sia invadente e che sia facile da fare. Ha lo svantaggio di richiedere all'utente di compilare manualmente tutto però. –

1

Ho cercato tra tutti i file di testo a partire dalla cartella matlabroot, ma non ho trovato quel modello. Sembra che sia hard-coded, il che è strano.

Mi piace Jonas approach. Come i miei due centesimi, puoi scaricare una funzione (non mia) che fa cose simili con alcune personalizzazioni da here.

+0

@ yuk: quel secondo link viene bloccato dal mio filtro Internet, che dichiara di essere un malware; sei sicuro che sia corretto? –

+0

@Richie: Aperto ok dal mio lavoro e da casa. È solo un blog di Matlab: http://msbs.ca/matlab/ – yuk

+0

Deve essere solo un filtro troppo zelante al lavoro; si apre bene a casa. L'uso di 'com.mathworks.mlservices.MLEditorServices.newDocument (str)' per inserire il modello direttamente nell'editor è interessante. –

0

Dopo aver riflettuto meglio, ho trovato una soluzione di cui sono soddisfatto, combinando le risposte di Jonas e gnovice. È una funzione che crea un nuovo m-file (con la documentazione del modello) e lo apre nell'editor. È disponibile da Matlab Central File Exchange.

Problemi correlati