最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。
MATLAB® ファイルは、多くのコメントから構成されていることがよくあります。通常、一度にプログラムの 1 か所に集中して取り組み、そのコードをまとまりとして処理します。同様に、他の人に自分のファイルの説明をするときも、プログラムをまとまりとして説明します。これらのプロセスを容易にするには、"コード セクション" を使用します。これは、コード セルまたはセル モードとしても呼ばれています。コード セクションは、2 つのコメント文字 (%%
) で開始し、MATLAB スクリプトでグループとして実行させる一連のコード行を含めます。
コード セクションの境界を明示的に定義するには、次の方法でセクション区切りを挿入します。
[エディター] タブの [編集] セクションにある [挿入] ボタン グループで、 をクリックします。
新規コード セクションを開始する行の先頭に 2 つのパーセント記号 (%%
) を入力します。
%%
行のテキストは "セクション タイトル" と呼ばれます。セクション タイトルを含めるのは任意ですが、セクション タイトルを入れるとファイルが読みやすくなり、コードをパブリッシュする場合はこれが見出しとして表示されます。
MATLAB ファイルを作成するとき、エディターのセクション機能を使ってファイルをセクションごとに実行できます。この方法はプログラムの実験や微調整に役立ちます。セクション間を移動して、各セクションを個別に実行できます。セクションを実行するにはセクションに必要な値がすべて含まれているか、値が MATLAB ワークスペースに存在していなければなりません。
セクションの実行機能は、現在黄色で強調表示されているセクション コードを実行します。MATLAB は、コード セクションを個別に実行するときにファイルを自動保存しません。ファイルは検索パス上にある必要はありません。
以下の表は、コード セクションの実行手順を説明します。
操作 | 手順 |
---|---|
現在のセクションのコードを実行する |
|
現在のセクションのコードを実行し、次のセクションに移動する |
|
ファイル内のすべてのコードを実行する |
|
セクション内の数値をインクリメントして、変更を行うたびにそのセクションを再実行することができます。これはコードの微調整に役立ちます。
セクションの数値をインクリメントまたはデクリメントするには、次の手順に従います。
数値を強調表示するか、または数値の横にカーソルを置きます。
右クリックしてコンテキスト メニューを開きます。
[値のインクリメントおよびセクションの実行] を選択します。次のような小さいダイアログ ボックスが表示されます。
適切な値を /
テキスト ボックスまたは
/
テキスト ボックスに入力します。
、
、
または
ボタンをクリックして、セクションで選択した値を加算、減算、乗算または除算します。
MATLAB は各クリック後にセクションを実行します。
メモ:
MATLAB はスクリプトの数値の変更を自動的には保存しません。
セクション内のコードを実行せずに、ファイルのセクション間を移動できます。これにより、ファイル内でセクション間を素早く簡単に移動できます。これは、大きいファイル内で特定のコードを検索するときなどに便利です。
操作 | 手順 |
---|---|
次のセクションへ移動する |
|
前のセクションへ移動する |
|
指定したセクションへ移動する |
|
この例では、sine_wave.m
というファイルで 2 つのコード セクションを定義し、パラメーターをインクリメントして作成したプロットを調整します。エディターでこのファイルを開くには、以下のコマンドを実行してファイルをローカル フォルダーに保存します。
edit(fullfile(matlabroot,'help','techdoc','matlab_env',... 'examples','sine_wave.m'))
ファイルがエディターで開いたら、以下の手順に従います。
ファイルの 1 行目にセクション区切りと次のタイトルを挿入します。
%% Calculate and Plot Sine Wave
空行と 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') xlabel('x') ylabel('sin(x)') fig = gcf; fig.MenuBar = 'none';
ファイルを保存します。
カーソルをセクション タイトル Calculate
and Plot Sine Wave
に置きます。[エディター] タブの [実行] セクションで、 [セクションの実行] をクリックします。
sin(x)
のコース プロットを表す図が表示されます。
正弦プロットを滑らかにします。
ステートメントで 1
を強調表示します。x
= 0:1:6*pi;
.
右クリックして [値のインクリメントおよびセクションの実行] を選択します。次のような小さいダイアログ ボックスが表示されます。
/
テキスト ボックスに
2
と入力します。
ボタンを数回クリックします。
クリックするごとに正弦プロットが滑らかになっていきます。
図を閉じてファイルを保存します。
sine_wave.m
ファイル全体を実行します。滑らかな正弦プロットがタイトル付きで新しい図に表示されます。
MATLAB エディター内でのコード セクションの表示方法を変更できます。既定の設定では、MATLAB はコード セクションを黄色で強調表示し、水平線で分割します。カーソルをセクション内の任意の行に置くと、エディターはセクション全体を強調表示します。
コード セクションの表示方法を変更するには、次の手順に従います。
[ホーム] タブの [環境] セクションで [基本設定] をクリックします。
[基本設定] ダイアログ ボックスが表示されます。
左側のペインで [MATLAB] 、 [色] 、 [プログラミング ツール] を選択します。
[セクション表示オプション] の下で、コード セクションの外観を選択します。
セクションを強調表示するかどうか、強調表示の色、コード セクション間に分割線を表示するかどうかを選択できます。
コード セクションをコントロール ステートメントおよび関数内で使用すると予期しない結果が表示されることがあります。これは、"ユーザー" がセクション区切りを明示的に挿入しない場合に MATLAB がエディターに表示されないセクション区切りを自動的に挿入することが原因です。これは特に、入れ子形式のコードを使用するときに顕著になります。入れ子形式のコードは、コントロール ステートメントまたは関数を別のコントロール ステートメントもしくは関数のスコープ内に配置するときに発生します。
MATLAB は次の基準に従って、セクション境界をコード ブロックで自動的に定義します。
MATLAB はセクション区切りをファイルの先頭と最後に挿入し、ファイル全体を含むコード セクションを作成します。ただし、ファイルに明示的なコード セクションを 1 つまたは複数追加しない限り、エディターはファイル全体を含むセクションを強調表示しません。
セクション区切りを制御フロー ステートメント (if
や while
ステートメントなど) の中で定義する場合、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
"入れ子の最上位レベル" では、1 つのセクションがファイル全体に相当します。
MATLAB は、ユーザーがセクション区切りをコード ブロック内の "同じレベル" で指定する場合にのみ、セクションをコード ブロックで定義します。したがって、MATLAB は、カーソルはファイル全体を含むセクション内にあるとみなします。
"入れ子の 2 番目のレベル" では、セクションは for
ループ内にあります。
"入れ子の 3 番目のレベル" では、1 つのセクションが if
ステートメント内にあります。