Main Content

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

MATLAB Function ブロック エディター

MATLAB Function ブロックの MATLAB コードの作成、編集、デバッグ

説明

MATLAB Function ブロック エディターでは、MATLAB Function ブロックの MATLAB® 関数を表示、編集、作成できます。MATLAB コードを更新すると、MATLAB 関数の入力引数と出力引数に一致する入力端子と出力端子をもつ MATLAB Function ブロックが Simulink® で更新されます。Simulink エディターMATLAB Function ブロック エディターが開きます。

This image displays the MATLAB Function Block Editor. The editor contains a function that calculates the mean and standard deviation of an input vector.

MATLAB Function ブロック エディター を開く

  • MATLAB Function ブロックをダブルクリックします。

  • MATLAB Function ブロックを選択し、[関数] タブで [Simulink で開く] をクリックします。

すべて展開する

モデルに MATLAB Function を追加して MATLAB Function ブロック エディターを開きます。

  1. [シミュレーション] タブで [ライブラリ ブラウザー] をクリックします。[Simulink][User-Defined Functions] を選択します。MATLAB Function ブロックを Simulink キャンバスにドラッグします。

  2. ブロックをダブルクリックして MATLAB Function ブロック エディターを開きます。関数本体のコードを次のように置き換えます。

    y = 2*u;
  3. [親に移動] ボタン をクリックしてモデルに戻ります。Sine Wave ブロックを入力信号として追加し、Scope ブロックを追加して MATLAB Function ブロックの入力と出力を取得します。

    This shows the example model the instructions describe. It attaches a Sine Wave block and a Scope block to a MATLAB Function block you created.

  4. シミュレーションを実行し、Scope ブロックを開いてコードの効果を確認します。

既定の関数の名前を変更し、ブロックの入力端子、出力端子、およびブロック アイコンを自動的に更新するように関数の引数を調整します。

  1. 新しい MATLAB Function ブロックを作成し、MATLAB Function ブロック エディターを開きます。

  2. 関数ヘッダーでテキストを次のように変更します。

    function [x y] = test_function(u1, u2)

  3. モデル ウィンドウに戻ります。ブロック アイコン上の名前が test_function になり、ブロックに u1 および u2 の 2 つの入力端子と x および y の 2 つの出力端子が含まれます。

[シンボル] ペインを使用して、MATLAB Function ブロックに関数の引数と内容を追加します。

  1. 新しい MATLAB Function ブロックを作成し、ブロックをダブルクリックして MATLAB Function ブロック エディターを開きます。

  2. [シンボル] ペインとプロパティ インスペクターを開きます。[関数] タブで、[データの編集] をクリックします。

  3. [シンボル] ペインで、[データの作成] ボタン をクリックします。

  4. 新しいデータを選択し、プロパティ インスペクターでプロパティを調整します。

詳細については、MATLAB Function ブロックの変数の作成と定義を参照してください。

MATLAB Function ブロックのデバッグ用にブレークポイントを追加できます。

  1. 新しい MATLAB Function ブロックを作成し、MATLAB Function ブロック エディターを開きます。

  2. 以下のコードを入力します。

    function [mult,add,subtract] = number_operations(u1,u2)
    
    add = u1 + u2;
    subtract = u1 - u2;
    mult = u1 * u2;
    

  3. 行番号 3 と 4 をクリックして 2 つのブレークポイントを追加します。行番号が赤色で強調表示されます。

  4. シミュレーションを実行します。最初のブレークポイントでシミュレーションが停止します。[続行] ボタンをクリックして次のブレークポイントまでシミュレートします。最後のブレークポイントに到達したら、[続行] をクリックして次のタイム ステップに進みます。

MATLAB 関数のコードに対するレポートを実行して、変数に関する情報を確認し、警告とエラーを検出します。

  1. 新しい MATLAB Function ブロックを作成し、MATLAB Function ブロック エディターを開きます。

  2. 以下のコードを入力します。

    function [mult,add,subtract] = number_operations(u1,u2)
    
    add = u1 + u2;
    subtract = u1 - u2;
    mult = u1 * u2;
    

  3. [関数レポート] ボタン をクリックします。

  4. レポートの下部の [変数] タブに変数がリストされます。いずれかの変数名をクリックすると、その変数のインスタンスがコード内で強調表示されます。

  5. 関数のコードでいずれかの変数または式をポイントするかクリックすると、詳細情報を含むダイアログ ボックスが表示されます。

関連する例

パラメーター

準備

[シンボル] ペインとプロパティ インスペクターを開きます。このボタンは、関数の変数を定義したりプロパティを編集したりするときにクリックします。

ナビゲート

関数や行番号など、指定したコードに移動します。

MATLAB Function ブロック エディターで記述された指定したテキストを検索します。キーボード ショートカットの Ctrl + F を使用することもできます。コードを検索して置換する場合は、キーボード ショートカットの Ctrl + H を使用します。このパラメーターの機能は MATLAB エディターと同じです。詳細については、ファイル内のテキストの検索と置換、指定位置への移動を参照してください。

コード

選択したコードを関数に変換します。この機能は、まだ関数に含まれていないコードに対して使用します。関数のコード用に独立したファイルを作成するか、コードをローカル関数に変換できます。

  1. コードを変換して独立した M ファイルに保存するには、コードを選択し、[リファクター][関数への変換] をクリックします。コードが M ファイルとして保存され、MATLAB Function ブロック エディターで、指定した名前でコードが呼び出されます。モデルをエラーなく実行するには、M ファイルがパス上になければなりません。

  2. コードをローカル関数に変換するには、コードを選択し、[リファクター][ローカル関数への変換] をクリックします。MATLAB Function ブロック エディターで、コードの一番下にローカル関数が作成され、選択したコードがローカル関数の関数呼び出しに置き換えられます。

コードをコメントアウトします。コメントにする行を選択し、[コメント] ボタン をクリックします。ボタンを押すたびに、選択した行に % が 1 つ追加されます。コードを選択してキーボード ショートカットの Ctrl + R を使用することもできます。

コードからコメントを削除します。コメントを解除する行を選択し、[コメント解除] ボタン をクリックします。ボタンを押すたびに、選択した行から % が 1 つ削除されます。コードを選択してキーボード ショートカットの Ctrl + T を使用することもできます。

コメントを折り返します。コメントにする行を選択し、[コメントを折り返す] ボタン をクリックします。

MATLAB Function ブロック エディターでは、次の内容を含むコメントは折り返されません。

  1. コード セクションのタイトル (%% で始まるコメント)。

  2. URL などの長い連続テキスト。

  3. 前の行から続く箇条書きリスト項目 (* または # で始まるテキスト)。

スマート インデントでコードの書式を設定します。スマート インデントでは、関数や論理ステートメントを使用している場合などにコードが読みやすくなるようにコードの書式が自動的に設定されます。スマート インデントを手動で展開するには、コード行を選択し、[スマート インデント] ボタン をクリックします。MATLAB Function ブロック エディターでは、既定ではスマート インデントが自動的に使用されます。詳細については、コードの編集と書式設定を参照してください。

コードのインデントを 1 タブ インデント増やします。インデントを増やすには、コード行を選択し、[インデントを増やす] ボタン をクリックします。

コードがインデントされている場合に、コードのインデントを 1 タブ インデント減らします。インデントを減らすには、コード行を選択し、[インデントを減らす] ボタン をクリックします。

ユーザー インターフェイスをもつ fi オブジェクト コンストラクターを作成します。インターフェイスを開くには、[固定小数点データを指定します] ボタン をクリックします。アイコンの横の矢印をクリックして追加の fi コンストラクターを選択します。詳細については、GUI での fimath オブジェクト コンストラクターの作成 (Fixed-Point Designer)を参照してください。この機能には Fixed-Point Designer™ のライセンスが必要です。

コンパイル

モデルを更新し、エラーをチェックします。[モデルの更新] のメニューを展開して 2 つのオプションから選択します。

  • モデルの更新: モデルをコンパイルし、静的エラーをチェックします。

  • ブロックの更新: モデルのブロックを更新して変更を反映します。

モデルの更新には、キーボード ショートカットの Ctrl + Shift + D を使用することもできます。詳細については、ブロック線図の更新とシミュレーションの実行および動的システムのシミュレーションの段階を参照してください。

シミュレーション

シミュレーション終了時間を指定します。

シミュレーション モードを変更します。[ノーマル][アクセラレータ][ラピッド アクセラレータ] のいずれかを選択できます。詳細については、シミュレーション モードの選択を参照してください。

モデルのシミュレーションで高速リスタートを有効にします。高速リスタートでは、コンパイルを行わずにパフォーマンスを改善できます。詳細については、高速リスタートのご利用の前にを参照してください。

シミュレーションのステップを戻します。このオプションは、先に [シミュレーション ステップ オプション] で設定しておく必要があります。それらのオプションを設定していない場合、このボタンで [シミュレーション ステップ オプション] ウィンドウが開きます。詳細については、シミュレーション ステップ オプションを参照してください。

シミュレーションを実行します。単一のシミュレーションの実行に加え、[複数のシミュレーション] で設計検討を作成すると、ドロップ ダウンから [すべて実行] を選択して複数のシミュレーションを実行できます。ドロップ ダウンから [シミュレーション ペーシング] を選択して時間のペーシングを調整します。

シミュレーションをタイム ステップごとにステップ実行します。詳細については、シミュレーションのステップ実行を参照してください。

シミュレーションを停止します。

コードのデバッグ

MATLAB Function ブロックでのデバッグ中にブレークポイントを越えてステップします。このボタンを押すと、デバッガーは過去の関数呼び出しをステップし、呼び出される関数の行単位の実行には入りません。このボタンは、シミュレーションがブレークポイントで停止した後にのみ使用できます。

MATLAB Function ブロックでのデバッグ中に次のコード行に移動します。ローカル関数を呼び出す行の場合、そのローカル関数の最初の行にステップインします。このボタンは、シミュレーションがブレークポイントで停止した後にのみ使用できます。

現在の関数またはローカル関数のデバッグ中に行単位の関数の実行を終了します。ローカル関数の場合、デバッガーはそのローカル関数の呼び出しに続く行に進みます。このボタンは、シミュレーションがブレークポイントで停止した後にのみ使用できます。

レポート

MATLAB 関数に関する情報を含むレポートを開きます。このレポートを使用して、コード内の変数や式に関する情報を確認できます。詳細については、MATLAB Function レポートを参照してください。

バージョン履歴

R2011a で導入