2013-02-28 2 views
19

Eine sehr einfache und vielleicht offensichtliche Frage: Wie kann ich die Ausführung eines Matlab M-Skripts mit einer Anweisung innerhalb des Skripts abbrechen?Kann ein Matlab M-Skript durch eine Anweisung im Skript gestoppt werden?

Dies ist analog zum Aufruf return in der Mitte einer Funktion, um es sofort zu beenden.

+1

Abort zu verwenden und sind zwei verschiedene Dinge zurückkehren, haben Sie 'return' wollen oder' Ausfahrt wollen (1) '? – Mikhail

+3

@Mikhail 'exit' beendet Matlab, das ist wahrscheinlich nicht das, was er will ... – ahans

+6

return funktioniert genauso gut in einem Skript wie in einer Funktion. – grantnz

Antwort

22

Wenn return wird Sie nicht wollen, brauchen, ich glaube, Sie break

Pause beendet die Ausführung eines Matlab-Code verwenden möchten. Beispielsweise werden Anweisungen in der Schleife, die nach der break-Anweisung angezeigt werden, nicht ausgeführt.

In "nested loops" bricht break nur die Schleife ab, in der er auftritt. Die Steuerung wird an die Anweisung übergeben, die dem Ende dieser Schleife folgt.

+0

Danke Natan. Ich kann nicht glauben, dass ich das nicht schon versucht habe. –

1

Ja, Sie können mit Hilfe von

Rückkehr;

Return funktioniert in Matlab-Skripten wie in Funktionen.

z.B.

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

Ab Matlab R2015b break nicht mehr verwendet, um ein Skript vorge beenden werden kann. A break kann jetzt nur noch für eine For-Schleife verwendet werden. Der Code wird nicht ausgeführt und ein Fehler wird ausgegeben. Das war technisch immer richtig, aber es wird jetzt durchgesetzt.

Der richtige Weg ist return

+0

'while' Schleife auch. –

Verwandte Themen