
Matlabの組み込み関数の中には、引数の数や戻り値の数に応じて異なる作用をするものが沢山あると思います。
例えば組み込みのmax関数だと
y=max(x)
ならxの第一次元にについての最大値を返しますし、
[y,i]=max(x)
なら、さらに i に最大値のindexを代入、
一方
x=max(x,y)
ならx,yの各要素について大きい方を取った行列を、
x=max(x,[],d)
ならxのd次元についての最大化をしてくれます。
質問ですが、そういう関数を自分で作ることは可能ですか?
function [z,w]=f(x,y)
という風に関数を定義してしまうと、たとえyを関数中で利用しない場合でも、引数yを指定しなければエラーになってしまいます。同じ関数名でも呼び方に応じて異なった操作をさせることはできないでしょうか?
No.1ベストアンサー
- 回答日時:
MATLABには、関数のオーバーロードという概念はありません。
組込み関数を覗いてみると分かりますが、複数の組合せの引数を許容している関数は、関数側の引数がCell型になっています。
そのような関数の詳細な作成方法は、実際にmsgbox.mなど該当する関数のソースコードを見て確認する方が早いと思います。
MATLABの組込み関数のソースファイルは、インストールフォルダのtoolboxフォルダ以下にあります。
No.2
- 回答日時:
書き忘れましたが、戻り値の方は呼び出し側が全て受け取らなくても問題ありません。
ですので、max関数を例に挙げれば、おそらく関数定義は以下のようになっていると思います。
function [value, index] = max(varargin)
もしくは
function [varargout] = max(varargin)
■ varargin, varargout
http://dl.cybernet.co.jp/matlab/support/manual/r …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
functionから別のfunctionを実...
-
クリックすると上に開くアコー...
-
要素名がスペースを含む場合のj...
-
関数でy=g(x)のgとは何の略です...
-
idを使わずにonclickで自身の要...
-
jQueryでのレスポンシブが綺麗...
-
ジェネレーターの作り方
-
XMLでのAttributeを持ったNode...
-
同じIDで定義した要素の配列を...
-
javascriptでiframeのURL変更は?
-
雪を降らせるみたいな、ゆらゆ...
-
VC++のちらつき防止方法
-
ルパン
-
ASP+アクセスでのSQLコメントに...
-
アンカーリンクをクリックさせ...
-
javascript 変数名の連結をしたい
-
C#OpenCv V4にのエラーに関する...
-
日本語入力の禁止
-
appendChildがieだとできない??
-
google apps scriptの終了のさせ方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
functionから別のfunctionを実...
-
idを使わずにonclickで自身の要...
-
関数でy=g(x)のgとは何の略です...
-
クリックすると上に開くアコー...
-
Matlabで自作関数をオーバーロード
-
XMLHttpRequestでキャッシュを...
-
javascriptのenchantの打ちミス
-
ASP 最終日の表示
-
jQueryでのレスポンシブが綺麗...
-
javascriptのレキシカルスコー...
-
jQueryを利用したアコーディオ...
-
getElementByIdを使用したグロ...
-
イベントハンドラの関数の引数...
-
JavaScript 宣言 について
-
Ajaxでデータベース(PostgreSQL)
-
関数名をテキストから読み込む...
-
delphi6を使っています。
-
Javascriptの丸括弧の意味
-
functionはhtmlやjsに2度使えま...
-
jQueryの :not() .not() が有効...
おすすめ情報