最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

end

コードのブロックを終了、または最後の配列インデックスを示す

構文

end

説明

end は、forwhileswitchtryif および parfor ステートメントを終了するキーワードです。end ステートメントを使用していない場合、forwhileswitchtryif、および parfor ステートメントは入力待ちの状態になります。end の各インスタンスは、最も近くに位置するペアになっていない forwhileswitchtryifparfor のいずれかのステートメントとペアになります。

end は、宣言された関数も終了します。これはオプションの場合もありますが、コードの可読性を向上させるには、end を使用します。以下の場合は end が必要です。

  • ファイルに関数が含まれ、関数の 1 つが end で終了する場合、ファイル内のすべての関数を end で終了させなければなりません。

  • ファイルに 1 つ以上の入れ子関数を持つ 1 つの関数が含まれている場合、ファイル内のすべての関数を、それぞれ 1 つの end ステートメントで終了しなければなりません。

  • スクリプトに 1 つ以上のローカル関数が含まれる場合、ファイル内のすべての関数が end で終了しなければなりません。

end は、配列の最後のインデックスも表します。たとえば、X(end)X の最後の要素であり、X(3:end)X の 3 番目から最後までの要素を選択します。

すべて折りたたむ

end を使用して、if ステートメントと for ループを閉じます。end の 1 番目のインスタンスは if ステートメントとペアになり、2 番目は for ステートメントとペアになります。

a = [0 0 1 1 0 0 0 1 0];
for k = 1:length(a)
    if a(k) == 0
        a(k) = 2;
    end
end

end を使用して switch ブロックを閉じます。

choice = 1;

switch choice
    case 1
        disp('Vote for no. 1')
    case 2
        disp('Vote for no. 2')
    otherwise
        disp('Abstain')
end
Vote for no. 1

average.m という名前のファイル内で関数を宣言し、現在のフォルダーに保存します。end を使用して関数を閉じます。

function ave = average(x)
    ave = sum(x(:))/numel(x); 
end

この関数は入力配列を受け入れ、その要素の平均を計算し、スカラーを返します。コマンド ラインから関数を呼び出します。

z = 1:99;
ave = average(z)
ave =

    50

ベクトル X を作成します。

X = 1:15;

X の 5 番目から最後までの要素にアクセスします。

X(5:end)
ans = 1×11

     5     6     7     8     9    10    11    12    13    14    15

X の奇数インデックスの要素にアクセスします。

X(1:2:end)
ans = 1×8

     1     3     5     7     9    11    13    15

end を使用して行列 A の最後の行にアクセスします。

A = magic(3)
A = 3×3

     8     1     6
     3     5     7
     4     9     2

B = A(end,:)
B = 1×3

     4     9     2

ヒント

  • クラスでは関数 end をオーバーロードして特化した動作を実装することができます。詳細については、オブジェクトのインデックスとしての endを参照してください。

  • 配列 X が既に存在する場合は、end を使用して配列を拡張できます。たとえば、X(end+1) = 5 は、X の長さを 1 増やし、新しい要素を X の最後に追加します。

  • end は、関数ファイル内ではオプションになる場合もありますが、使用するとコードが読みやすくなります。

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

参考

| | | | | | | |

トピック

R2006a より前に導入