• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Matlabで自作関数をオーバーロード)

Matlabで自作関数をオーバーロード

このQ&Aのポイント
  • Matlabの組み込み関数の中には、引数の数や戻り値の数に応じて異なる作用をするものが沢山あると思います。
  • 自分で作成した関数をオーバーロードすることは可能ですか?
  • 例えば、同じ関数名でも呼び方に応じて異なった操作をさせることはできないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • sgwjn
  • ベストアンサー率70% (47/67)
回答No.1

MATLABには、関数のオーバーロードという概念はありません。 組込み関数を覗いてみると分かりますが、複数の組合せの引数を許容している関数は、関数側の引数がCell型になっています。 そのような関数の詳細な作成方法は、実際にmsgbox.mなど該当する関数のソースコードを見て確認する方が早いと思います。 MATLABの組込み関数のソースファイルは、インストールフォルダのtoolboxフォルダ以下にあります。

incd
質問者

お礼

ありがとうございます!早速試してみます。

その他の回答 (1)

  • sgwjn
  • ベストアンサー率70% (47/67)
回答No.2

書き忘れましたが、戻り値の方は呼び出し側が全て受け取らなくても問題ありません。 ですので、max関数を例に挙げれば、おそらく関数定義は以下のようになっていると思います。 function [value, index] = max(varargin) もしくは function [varargout] = max(varargin) ■ varargin, varargout http://dl.cybernet.co.jp/matlab/support/manual/r13/toolbox/matlab/ref/?/matlab/support/manual/r13/toolbox/matlab/ref/varargin.shtml

関連するQ&A

専門家に質問してみよう