アプリ版:「スタンプのみでお礼する」機能のリリースについて

Matlab(超)初心者です。
コード内において、関数の引数として@がでてきたのですが、どういう意味でしょうか。
[inisttrat]=fmincon(@fun, .......)
という具合です。

また、少し詳しい目の入門サイトを教えていただけると大変助かります。宜しくお願いします。

A 回答 (3件)

私の説明不足で申し訳ありません.


関数オブジェクトといいましたが,MATLABでは関数ハンドルと呼んでいます.

それと,

>最新のmatlabでは、@をつけてもつけなくともよい

のでは無く,最新バージョンでは@をつけます.
関数を文字列にするのか(シングルコーティション)関数ハンドル(@)にするのかで区別します.
    • good
    • 0
この回答へのお礼

どうもありがとうございました。完全には理解していませんが、かなり雰囲気をつかめました。

お礼日時:2006/03/23 03:47

MATLABを業務に使っているものです.


関数引数として@を付けるのは,M-ファイルに関数名(組込み関数M-ファイル名を含む)を渡すときに付けます(@を付けると関数オブジェクトになります).この利点としては関数と@を付けた関数を分離することにより,汎用性のある関数を作成することが出来ます.
また,ちょっと古いMATLABでは関数名を引数に用いる場合は,シングルコーティション(')を付けます.
例えば,
a = quad(@sin,0,pi) %正弦波を0~πまで積分
b = quad('sin',0,pi) %正弦波を0~πまで積分
は同じになります.
あるいは,inline関数を使ってもかまいません.
例えば,
F = inline('1./(x.^3-2*x-5)');
Q = quad(F,0,2);
でも可能です.このinline関数を使う利点はいちいち関数M-ファイルを作成しなくても良いことがあるでしょうね.

>少し詳しい目の入門サイト
ですが,私の場合は,サイトより入門書を見て勉強しました(個人的には本のほうが見やすいの...).
例えば,
小林先生の「最新MATLABハンドブック」

青山先生の「最新使える!MATLAB」
なんかは良く見ます.
    • good
    • 0
この回答へのお礼

なるほど。では最新のmatlabでは、@をつけてもつけなくともよい、ということでしょうか?それとも自作M-file関数を関数の引数にする場合は@マークをつけなければならないということでしょうか。
参考文献のご紹介ありがとうございます。

お礼日時:2006/03/20 13:50

fmincon=制約付き非線形多変数関数の最小値の探索


詳しい事は下記のページで確認してください。
http://www.cybernet.co.jp/matlab/support/manual/ …

参考URL:http://www.cybernet.co.jp/matlab/support/manual/ …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!