• 締切済み

matlabの@で関数呼び出せない。

Matlab6.5使用です。下記で関数ハンドル@の理解・使い方が間違っているのでしょうか?ご指摘お願いします。 h = @sin % sin関数のハンドルhを作成 a = h(pi) % 関数ハンドルhを用いて間接的にsin(pi)を計算。 するとエラー「??? サブスクリプトインデックスは正の実数整数, またはロジカルである必要があります」がでます。 このエラーの解説と、正しい使用法をお願いします。 実際はsinではなく、自作の関数を使って同じようなことをさせようと思っています。

みんなの回答

回答No.1

変な動きですね hが変数であるかのような動きです。 とりあえず、 isa(h, 'function_handle') でhが関数ハンドルになっているかどうかを確認してみては? 他にはオーバーロードされている可能性があります。 下記のサイトの関数の優先順位を参照してください。 http://www.mathworks.co.jp/help/ja_JP/techdoc/matlab_prog/f7-58170.html#bresuvu-3

phy0
質問者

お礼

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

関連するQ&A