関数 disp のオーバーロード
表示方法
オブジェクトの表示をカスタマイズする最善のアプローチは、matlab.mixin.CustomDisplay のサブクラスを作成することです。ただし、matlab.mixin.CustomDisplay からユーザー クラスを派生させない場合は、関数 disp をオーバーロードして、MATLAB® によるユーザー クラスのオブジェクトの表示方法を変更します。
MATLAB は、セミコロンで終了しないステートメント内でオブジェクトが参照される場合、常に関数 display を呼び出します。たとえば、以下のステートメントは変数 a を作成します。MATLAB が display を呼び出すことで、コマンド ラインに a の値が表示されます。
a = 5
a =
5
display は続いて disp を呼び出します。
オーバーロードされた disp
代入が行われると、組み込み関数 display は表示されている変数の名前を出力します。それ以外の場合は ans を変数名として使用します。その後、display は disp を呼び出し、値の実際の表示を処理します。
表示されている変数が、disp をオーバーロードする、クラスのオブジェクトである場合、MATLAB はオーバーロードされたメソッドを常に呼び出します。MATLAB は 2 つの引数で display を呼び出し、変数名を 2 番目の引数として渡します。
disp と display の関係
以下が発生すると、MATLAB は組み込み関数 display を呼び出します。
MATLAB で値を返し、セミコロンで終了しないステートメントを実行する
左辺に変数がない場合に、MATLAB は
ans =に続けて値を表示するコードが、関数
displayを明示的に呼び出す
display を呼び出すと、以下のように動作します。
入力引数が既存の変数である場合、
displayは変数名、等号、値の順に表示する入力が 1 つの式の結果である場合、display は
ans =を表示しない
以下が発生すると、MATLAB は組み込み関数 disp を呼び出します。
組み込み関数
displayが、dispを呼び出すコードが、
dispを明示的に呼び出す
空の組み込み型 (数値型、char、struct、cell) に対して、関数 display は以下を表示します。
[]— 数値型"0x0 struct array with no fields."— 空のstructs"0x0 empty cell array"— 空の cell 配列"0x0 empty char array"— 空のchar配列"0x0 empty string array"— 空のstring配列
disp は次の点で display とは異なります。
dispは変数名やansを表示しないdispは、組み込み型 (数値型、char、struct、cell) の値が空の場合はなにも表示しない