2013-02-28 2 views
19

Una domanda molto semplice e forse ovvia: come posso interrompere l'esecuzione di uno script Matlab M utilizzando un'istruzione all'interno dello script?Può uno script M Matlab essere fermato da un'istruzione nello script?

Questo è analogo alla chiamata return nel mezzo di una funzione per terminare immediatamente.

+1

Abort e di ritorno sono due cose diverse, vuoi 'return' o si vuole' exit (1) '? – Mikhail

+3

@Mikhail 'exit' lascia Matlab, probabilmente non è quello che vuole ... – ahans

+6

return funziona altrettanto bene in uno script come in una funzione. – grantnz

risposta

22

Se return non è voglio che vi serve, penso che si desidera utilizzare break

break interrompe l'esecuzione di un codice Matlab. Ad esempio, le istruzioni nel ciclo che appaiono dopo l'istruzione break non vengono eseguite.

Nei cicli nidificati, l'interruzione esce solo dal ciclo in cui si verifica. Il controllo passa alla dichiarazione che segue la fine di quel ciclo.

+0

Grazie Natan. Non posso credere di non averlo già provato. –

1

Sì, è possibile con l'aiuto di

di ritorno;

Il ritorno funziona negli script Matlab come nelle funzioni.

ad es.

function [ point ] = PointDoubling(x,y,p,a) 
    %UNTITLED2 Summary of this function goes here 
    % Detailed explanation goes here 
    if y==0 
     point='Not calculated'; 
     return; 
    end 
    a2=(3*(x^2))+a; 
    b2=(2*y); 
    i=1; 
    while 1 
     if mod(b2*i,p)==1 
     break; 
    end 
     i=i+1; 
    end 
    s=mod(a2*i,p); 
    x1=mod(((s^2)-(2*x)),p); 
    y1=mod(((-y)+(s*(x-x1))),p); 
    point=[x1,y1]; 
    end 
4

Come di Matlab R2015b break non può più essere utilizzato per pre-terminare uno script. A break può ora essere utilizzato solo per un ciclo for. Il codice non verrà eseguito e verrà generato un errore. Questo era tecnicamente sempre vero, ma ora è applicato.

Il modo corretto è quello di utilizzare return

+0

'while while loop anche. –

Problemi correlati