2013-02-28 8 views
19

非常にシンプルで分かりやすい質問です。スクリプト内のステートメントを使用してMatlab Mスクリプトの実行を中止するにはどうすればよいですか?スクリプト内の文によってMatlab Mスクリプトを停止することはできますか?

これは、すぐに終了する関数の途中でreturnを呼び出すのと同じです。

+1

中止され、戻って二つの異なるものを使用するのですか? – Mikhail

+3

@Mikhail 'exit'はMatlabを終了します、それはおそらく彼が望むものではありません... – ahans

+6

戻り値は関数内でのようにスクリプトでも同様に機能します。 – grantnz

答えて

22

returnはあなたが必要と希望されていない場合、私はあなたがbreak

ブレークは、MATLABコードの実行を終了使いたいと思います。たとえば、break文の後に現れるループ内の文は実行されません。

ネストされたループでは、breakは、ループが発生したループからのみ終了します。制御は、そのループの終わりに続くステートメントに移ります。

+0

ありがとうございました。私はすでにそれを試していないとは信じられない。 –

1

はいあなたは

リターンの助けを借りてすることができます。

Returnは、関数のようにMatlabスクリプトで動作します。

MatlabのR2015b breakのよう

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

もはやプレ終了スクリプトに使用することができません。 breakはforループにしか使用できません。コードは実行されず、エラーがスローされます。これは技術的には常に真実でしたが、現在は強制されています。

適切な方法は、あなたがに `return`をしたいですかexit(1)` `にしたいですか、return

+0

'while'ループもあります。 –