Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

コードのセクションの作成と実行

R2021b 以降。コード セクション (R2021a) およびライブ スクリプトのセクションの実行 (R2021a) から置き換え。

多くの場合、MATLAB® コード ファイルには多数のコマンドとテキスト行が含まれます。通常、一度にコードの 1 か所に集中して作業し、コードと関連テキストは複数の部分に分けて処理されます。ドキュメントの管理と操作をより容易にするには、ファイルをセクションに分割します。その後、必要に応じて、個々のセクションのコードを実行したり、セクション間を移動したりできます。

File open in the Editor showing two sections. The second section has a blue border around it indicating that it is the selected section.

ファイルをセクションに分割

セクションを作成するには、[エディター] タブまたは [ライブ エディター] タブに移動し、[セクション] セクションで [セクション区切り] ボタンをクリックします。また、新しいセクションを開始する行の先頭に 2 つのパーセント記号 (%%) を入力することもできます。新しいセクションは青色の輪郭線で強調表示され、それが選択されていることが示されます。コード ファイル内のセクションが 1 つのみの場合、セクションは常に選択されているため、強調表示されません。

エディターでは、セクションは 2 つのパーセント記号 (%%) で始まります。%% 行のテキストは "セクション タイトル" と呼ばれます。セクション タイトルを含めるのは任意ですが、セクション タイトルを入れるとファイルが読みやすくなり、コードをパブリッシュする場合はこれが見出しとして表示されます。

File open in the Editor showing two percent signs on line eight and a blue border above line eight indicating the start of the section

ライブ エディターでは、セクションはコード、テキスト、および出力で構成できます。セクションを作成するか既存のセクションを変更すると、セクションの左側の縦のバーが縞模様で表示されます。この縞模様は、セクションが "古い" ことを示しています。古いセクションとは、まだ実行されていないか、最後の実行以降に変更されたセクションのことです。

File open in the Live Editor showing a blank code line on line eight and a blue border above line eight indicating the start of the section

セクションの削除

エディターでセクション区切りを削除するには、セクションの先頭にある 2 つのパーセント記号 (%%) を削除します。ライブ エディターでセクション区切りを削除するには、セクション区切りの直後の行の先頭にカーソルを合わせ、Backspace キーを押します。または、セクション区切りの直前の行の末尾にカーソルを合わせ、Delete キーを押すこともできます。

メモ

MATLAB によって追加されたセクション区切りは削除できません。MATLAB によってセクション区切りが追加される可能性がある状況の詳細については、関数でのセクションの動作およびループと条件付きステートメントでのセクションの動作を参照してください。

セクションの実行

コード ファイルを実行するときは、各セクションを個々に実行するか、ファイル内のすべてのコードを一度に実行できます。セクションを個々に実行するには、セクションに必要な値がすべて含まれているか、値が MATLAB ワークスペースに存在していなければなりません。セクションを個々に実行する場合、MATLAB でファイルは保存されず、ファイルが検索パス上にある必要はありません。

次の表では、コードを実行するためのさまざまな方法を説明しています。

操作手順
ファイル内のすべてのコードを実行する。

[エディター] タブまたは [ライブ エディター] タブの [実行] セクションで、 [実行] をクリックします。

選択されたセクション内のコードを実行する。

[エディター] タブまたは [ライブ エディター] タブの [セクション] セクションで、 [セクションの実行] をクリックします。

ライブ エディターでは、セクションの左側にある青いバーをクリックすることもできます。

Section in the Live Editor showing a blue bar to the left of the section.

選択されたセクションのコードを実行し、次のセクションに移動する。

[エディター] タブまたは [ライブ エディター] タブの [セクション] セクションで、 [実行して次に進む] を選択します。

選択セクション内のコードを実行し、その後、選択したセクションの後にあるすべてのコードを実行する。

[エディター] タブまたは [ライブ エディター] タブの [セクション] セクションで、 [最後まで実行] を選択します。

特定のコード行まで実行して一時停止する。

行の左側にある [ここまで実行] ボタンをクリックします。選択した行に到達できない場合、MATLAB はファイルの終わりかブレークポイントに達するまで実行を続けます。

エディターでは、 [ここまで実行] ボタンは保存済みのコードに対してのみ使用できます。ライブ エディターでは、 [ここまで実行] ボタンは保存済みかどうかに関係なくすべてのコードに対して使用できます。関数とクラスでは、 [ここまで実行] ボタンは評価の一時停止中にのみ使用できます。

詳細については、MATLAB コード ファイルのデバッグを参照してください。

セクションの値のインクリメント

セクション内の数値をインクリメントして、変更を行うたびにそのセクションを再実行することができます。これはコードの微調整に役立ちます。

セクション内の数値をインクリメントするには、ライブ エディターのコントロールを使用します。たとえば、次のコードでは変数 x の階乗を計算しています。

x = 5;
y = factorial(x)
y =
   120
x の値を対話的に変更するには、ライブ スクリプトで値 5 を数値スライダーに置き換えます。既定では、スライダーの値が変更されると MATLAB で現在のセクションが再実行されます。

Code that calculates the factorial of x. The value of x is replaced with a numeric slider with a minimum value of 0, a maximum value of 10, and an actual value of 5.

詳細については、ライブ スクリプトへの対話型コントロールの追加を参照してください。

セクション間の移動

セクション内のコードを実行せずに、ファイルのセクション間を移動できます。このナビゲーションにより、ファイル内でセクション間をすばやく簡単に移動できます。この方法で移動すると、大きいファイル内で特定のコードを検索するときなどに便利です。

操作手順
特定のセクションに移動する。

[エディター] タブまたは [ライブ エディター] タブの [ナビゲート] セクションで、 [移動] をクリックします。次に、[セクション] セクションで、使用可能なオプションから選択します。

前のセクションに移動する。

[エディター] タブまたは [ライブ エディター] タブの [ナビゲート] セクションで、 [移動] をクリックし、[前のセクション] をクリックします。代わりに、キーボード ショートカットの Ctrl + 上矢印も使用できます。

次のセクションに移動する

[エディター] タブまたは [ライブ エディター] タブの [ナビゲート] セクションで、 [移動] をクリックし、[次のセクション] をクリックします。代わりに、キーボード ショートカットの Ctrl + 下矢印も使用できます。

関数でのセクションの動作

エディターで関数内にセクション区切りを追加すると、MATLAB はセクション区切りを関数宣言と関数の end ステートメントに挿入します。end ステートメントで関数を終了しない場合、MATLAB は次の関数の直前で関数を終了します。

ライブ エディターでは、関数内にセクション区切りを追加することはできません。ローカル関数内のセクションはサポートされていません。ライブ スクリプトにローカル関数を追加すると、MATLAB は最初のローカル関数定義の前にセクション区切りを追加して、その後のすべてのセクション区切りを削除します。ライブ スクリプトで個々のセクションを実行する場合、ローカル関数定義の前にあるセクションのみを実行できます。

ループと条件付きステートメントでのセクションの動作

エディターでループまたは条件付きステートメント (if ステートメントや for ループなど) の内部にセクション区切りを追加すると、MATLAB はステートメントの開始と終了を含む行にセクション区切りを追加します (それらの行にまだセクション区切りがない場合)。ループまたは条件付きステートメントの内部のセクションは、残りのコードのセクションから独立しており、残りのコードのセクション内で入れ子になります。入れ子になったループまたは条件付きステートメントの内部のセクションも入れ子になります。

たとえば、次のコードは、10 要素のベクトルをあらかじめ割り当て、9 つの値を計算します。計算値が偶数の場合、MATLAB は 1 を加算します。

x = ones(1,10);
for n = 2:10

    x(n) = 2 * x(n - 1);
    if rem(x(n), 2) == 0
        
        x(n) = x(n) + 1;
    end
end

3 行目の for ループの内部にセクション区切りを追加すると、MATLAB は 9 行目の for ループの end ステートメントにセクション区切りを追加します。6 行目の if ステートメントの内部にセクション区切りを追加すると、MATLAB は 8 行目の if ステートメントの end ステートメントにセクション区切りを追加し、入れ子のセクションのレベルが 3 つになります。

  • 入れ子の最上位レベルでは、1 つのセクションがファイル全体に相当します。

    File open in the Editor with the selected section spanning the entire file, and section breaks at line three, six, eight, and nine

  • 入れ子の 2 番目のレベルでは、セクションは for ループ内にあります。

    File open in the Editor with the selected section spanning from line three to line nine, and section breaks at line six and eight

  • 入れ子の 3 番目のレベルでは、1 つのセクションが if ステートメント内にあります。

    File open in the Editor with the selected section spanning from line six to line eight, and section breaks at line three and nine

関連するトピック