ドキュメンテーション センター

  • 評価版
  • 製品アップデート

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

コード セクションの実行

ファイルのコード セクションへの分割

MATLAB® ファイルは、多くのコメントから構成されていることがよくあります。通常、一度にプログラムの 1 か所に集中して取り組み、そのコードをまとまりとして処理します。同様に、他の人に自分のファイルの説明をするときも、プログラムをまとまりとして説明します。これらのプロセスを容易にするには、"コード セクション" を使用します。これは、コード セルまたはセル モードとしても呼ばれています。コード セクションは、2 つのコメント文字 (%%) で開始し、MATLAB スクリプトでグループとして実行させる一連のコード行を含めます。

コード セクションの境界を明示的に定義するには、次の方法でセクション区切りを挿入します。

  • [エディター] タブの [編集] セクションにある [コメント] ボタン グループで、次のボタンをクリックします。

    .

  • 新規コード セクションを開始する行の先頭に 2 つのパーセント記号 (%%) を入力します。

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

コード セクションの実行

MATLAB ファイルを作成するとき、エディターのセクション機能を使ってファイルをセクションごとに実行できます。これはデバッグやプログラムの微調整に役立ちます。セクション間を移動して、各セクションを個別に実行できます。セクションを実行するにはセクションに必要な値がすべて含まれているか、値が MATLAB ワークスペースに存在していなければなりません。

セクションの実行機能は、現在黄色で強調表示されているセクション コードを実行します。MATLAB は、コード セクションを個別に実行するときにファイルを自動保存しません。ファイルは検索パス上にある必要はありません。

以下の表は、コード セクションの実行手順を説明します。

操作手順
現在のセクションのコードを実行する
  • カーソルをコード セクションの中に置きます。

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

現在のセクションのコードを実行し、次のセクションに移動する
  • カーソルをコード セクションの中に置きます。

  • [エディター] タブの [実行] セクションで、 [実行して次に進む] をクリックします。

ファイル内のすべてのコードを実行する
  • 保存したスクリプト名をコマンド ウィンドウに入力します。

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

    メモ:   個別のコード セクション実行時にデバッグはできません。MATLAB はブレークポイントを無視します。

コード セクションの値のインクリメント

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

セクションの数値をインクリメントまたはデクリメントするには、次の手順に従います。

  1. 数値を強調表示するか、または数値の横にカーソルを置きます。

  2. 右クリックしてコンテキスト メニューを開きます。

  3. [値のインクリメントおよびセクションの実行] を選択します。次のような小さいダイアログ ボックスが表示されます。

  4. 適切な値を / テキスト ボックスまたは / テキスト ボックスに入力します。

  5. または ボタンをクリックして、セクションで選択した値を加算、減算、乗算または除算します。

    MATLAB は各クリック後にセクションを実行します。

    メモ:   MATLAB はスクリプトの数値の変更を自動的には保存しません。

ファイル内のコード セクション間の移動

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

操作手順
次のセクションへ移動する
  • [エディター] タブの [実行] セクションで、 [次に進む] をクリックします。

前のセクションへ移動する
  • Ctrl + 上方向キーを押します。

指定したセクションへ移動する
  • [エディター] タブの [ナビゲート] セクションで、 [移動] を使用してカーソルを選択したセクションまで移動します。

コード セクションの実行例

この例では、sine_wave.m というファイルで 2 つのコード セクションを定義し、パラメーターをインクリメントして作成したプロットを調整します。エディターでこのファイルを開くには、以下のコマンドを実行してファイルをローカル フォルダーに保存します。

edit(fullfile(matlabroot,'help','techdoc','matlab_env',...
'examples','sine_wave.m'))

ファイルがエディターで開いたら、以下の手順に従います。

  1. ファイルの 1 行目にセクション区切りと次のタイトルを挿入します。

     %% Calculate and Plot Sine Wave
    
  2. 空行と 2 つめのセクション区切りを plot(x,y) の後に挿入します。セクション タイトル Modify Plot Properties を追加し、ファイルに以下のコードが含まれるようにします。

    %% Calculate and Plot Sine Wave
    % Define the range for x.
    % Calculate and plot y = sin(x).
    x = 0:1:6*pi;
    y = sin(x);
    plot(x,y)
    
    %% Modify Plot Properties
    title('Sine Wave','FontWeight','bold')
    xlabel('x')
    ylabel('sin(x)')
    set(gca,'Color','w')
    set(gcf, 'MenuBar', 'none')
  3. ファイルを保存します。

  4. カーソルをセクション タイトル Calculate and Plot Sine Wave に置きます。[エディター] タブの [実行] セクションで、 [セクションの実行] をクリックします。

    sin(x) のコース プロットを表す図が表示されます。

  5. 正弦プロットを滑らかにします。

    1. ステートメントで 1 を強調表示します。 x = 0:1:6*pi; .

    2. 右クリックして [値のインクリメントおよびセクションの実行] を選択します。次のような小さいダイアログ ボックスが表示されます。

    3. / テキスト ボックスに 2 と入力します。

    4. ボタンを数回クリックします。

      クリックするごとに正弦プロットが滑らかになっていきます。

    5. 図を閉じてファイルを保存します。

  6. sine_wave.m ファイル全体を実行します。滑らかな正弦プロットがタイトル付きで新しい図に表示されます。

コード セクションの外観の変更

MATLAB エディター内でのコード セクションの表示方法を変更できます。既定の設定では、MATLAB はコード セクションを黄色で強調表示し、水平線で分割します。カーソルをセクション内の任意の行に置くと、エディターはセクション全体を強調表示します。

コード セクションの表示方法を変更するには、次の手順に従います。

  1. [ホーム] タブの [環境] セクションで、 [設定] をクリックします。

    [設定] ダイアログ ボックスが表示されます。

  2. 左側のペインで [MATLAB][色][プログラミング ツール] を選択します。

  3. [セクション表示オプション] の下で、コード セクションの外観を選択します。

    セクションを強調表示するかどうか、強調表示の色、コード セクション間に分割線を表示するかどうかを選択できます。

コントロール ステートメントおよび関数でのコード セクションの使用

コード セクションをコントロール ステートメントおよび関数内で使用すると予期しない結果が表示されることがあります。これは、"ユーザー" がセクション区切りを明示的に挿入しない場合に MATLAB がエディターに表示されないセクション区切りを自動的に挿入することが原因です。これは特に、入れ子形式のコードを使用するときに顕著になります。入れ子形式のコードは、コントロール ステートメントまたは関数を別のコントロール ステートメントもしくは関数のスコープ内に配置するときに発生します。

MATLAB は次の基準に従って、セクション境界をコード ブロックで自動的に定義します。

  • MATLAB はセクション区切りをファイルの先頭と最後に挿入し、ファイル全体を含むコード セクションを作成します。ただし、ファイルに明示的なコード セクションを 1 つまたは複数追加しない限り、エディターはファイル全体を含むセクションを強調表示しません。

  • セクション区切りを制御フロー ステートメント (ifwhile ステートメントなど) の中で定義する場合、MATLAB はステートメントの開始と終了を含む行にセクション区切りを自動的に挿入します。

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

ユーザーが挿入した区切りと同じ行に自動区切りがある場合、1 つのセクション区切りにまとめられます。

入れ子形式のコード セクション区切り

次のコードは、入れ子形式のコード セクションの概念を説明します。

t = 0:.1:pi*4;
y = sin(t);

for k = 3:2:9
    %%
    y = y + sin(k*t)/k;
    if ~mod(k,3)
        %%
        display(sprintf('When k = %.1f',k));
        plot(t,y)
    end
end

このコードを MATLAB エディターにコピーして貼り付けると、2 つのセクション区切りによって 3 つの入れ子レベルができます。

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

    MATLAB は、ユーザーがセクション区切りをコード ブロック内の "同じレベル" で指定する場合にのみ、セクションをコード ブロックで定義します。したがって、MATLAB は、カーソルはファイル全体を含むセクション内にあるとみなします。

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

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

詳細

この情報は役に立ちましたか?