
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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel のユーザー定義関数でソルバーが動作しない 1 2022/09/05 19:51
- JavaScript ソースコードのいじる場所が分かりません。 1 2022/12/23 02:06
- C言語・C++・C# C言語:数値の桁数指定についての質問です。 8 2022/05/26 23:53
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- JavaScript カラーミーショップのsectionループ内で、[引数][戻り値]ありの関数的な処理を行いたいです。 1 2022/05/07 19:39
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- Google Maps エクセルについて 2 2022/11/27 11:00
- Excel(エクセル) エクセルのオートフィルについて質問があります。 2 2022/04/08 22:31
- その他(教育・科学・学問) 関数、写像について 1 2022/04/10 23:45
- 数学 X_1,…X,nを独立で同じ確率分布に従う確率変数列とする。 Xmin=min{X_1,…,Xn}, 5 2023/01/13 22:00
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
javascriptのレキシカルスコー...
-
delphi6を使っています。
-
イベントハンドラの関数の引数...
-
ASP 最終日の表示
-
javascriptのenchantの打ちミス
-
別サイトのinnerHTMLをコピーし...
-
Jqueryのajax処理
-
(function(){})()の意味
-
JavaScript 宣言 について
-
DBで新規追加したデータがAjax...
-
入力された文字列内に、ある数...
-
これも関数ですか?
-
javascriptのforループ中の変数...
-
setAの内容をsetBでも読み込み...
-
複数の無名関数を合成したい
-
無名関数?
-
javascript関数宣言に;をつけ...
-
ランダム音声と正解・不正解(続)
-
setTimeoutでelementを渡す方法
-
jQuery|:not(:animated)
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
functionから別のfunctionを実...
-
idを使わずにonclickで自身の要...
-
関数でy=g(x)のgとは何の略です...
-
jQueryの :not() .not() が有効...
-
クリックすると上に開くアコー...
-
JAVAスクリプトで指定時間以降...
-
関数の中の値を取り出したい
-
javascript(jQuery)でセル内...
-
ページ内に複数表がある場合のT...
-
XMLHttpRequestでキャッシュを...
-
jQuery|要素だけを変更できま...
-
jQueryでzipを解凍読み込みする...
-
jslintのエラーについて質問
-
画像がフェードイン・アウトす...
-
変数のスコープの問題?
-
【javascript 】addEventListen...
-
チェックBOX入力後、ある時間に...
-
roundupについて教えてください。
-
[jQuery] クリックで連番関数を...
-
Matlabで自作関数をオーバーロード
おすすめ情報