
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ランキング
-
getElementByIdを使用したグロ...
-
idを使わずにonclickで自身の要...
-
XMLHttpRequestオブジェクトが...
-
クリックすると上に開くアコー...
-
appendChildがieだとできない??
-
pdfに丸秘などのスタンプを...
-
HTMLの毎月の更新を自動的に行...
-
カラー表記の足し算プログラム
-
VBAでIEのボタンを押してメッセ...
-
重い処理とはどのようなものが...
-
船のゲームを作っているのです...
-
GASでundefinedエラーが出ます
-
バナーのランダム表示(複数、...
-
マウスストーカーやクリックで...
-
キーワードをクリックすると説...
-
html javascript リンク先アド...
-
ジェネレーターの作り方
-
onchangeイベントを使ってspan...
-
C#OpenCv V4にのエラーに関する...
-
JavaScriptによるundefined判定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
functionから別のfunctionを実...
-
関数でy=g(x)のgとは何の略です...
-
クリックすると上に開くアコー...
-
idを使わずにonclickで自身の要...
-
要素名がスペースを含む場合のj...
-
ページ内に複数表がある場合のT...
-
jQueryの :not() .not() が有効...
-
jslintのエラーについて質問
-
無名関数を使うメリットは何で...
-
Matlabで自作関数をオーバーロード
-
getElementByIdを使用したグロ...
-
JAVAスクリプトで指定時間以降...
-
Ajaxでデータベース(PostgreSQL)
-
XMLHttpRequestでキャッシュを...
-
処理前の「お待ちください」
-
jQueryの"return false"の役割...
-
クロージャーの利点が理解できない
-
javascript(jQuery)でセル内...
-
複数のxmlを同ページに読み込み...
-
jQuery|:not(:animated)
おすすめ情報