とっておきの手土産を教えて

Matlab6.5使用です。下記で関数ハンドル@の理解・使い方が間違っているのでしょうか?ご指摘お願いします。

h = @sin % sin関数のハンドルhを作成
a = h(pi) % 関数ハンドルhを用いて間接的にsin(pi)を計算。

するとエラー「??? サブスクリプトインデックスは正の実数整数, またはロジカルである必要があります」がでます。
このエラーの解説と、正しい使用法をお願いします。

実際はsinではなく、自作の関数を使って同じようなことをさせようと思っています。

A 回答 (1件)

変な動きですね


hが変数であるかのような動きです。

とりあえず、
isa(h, 'function_handle')
でhが関数ハンドルになっているかどうかを確認してみては?

他にはオーバーロードされている可能性があります。
下記のサイトの関数の優先順位を参照してください。
http://www.mathworks.co.jp/help/ja_JP/techdoc/ma …
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。一応、変数欄にはhが関数ハンドルタイプであることは示されておりましたし、isaでも「1」でした。feval(h,pi)とすると目的の計算ができました。

お礼日時:2011/05/03 04:48

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


おすすめ情報