6

harmonic.mプロトタイプを使用して、matlab パスのファイルに関数がありました。

function D = harmonic(A,B,C)

ここで重要なことに、Aは double 型の行列であることが期待されます。

バージョン r2014a では、どうやら MATLAB が新しい組み込みクラス method を作成したようdouble.harmonicです。したがって、関数を呼び出すと、間違った内部でエラーが発生しますharmonic。私の最初の入力はであり、と同等であるように見えるため、harmonicパスリストで my が近くにある (パスwhich harmonicが明らかになる) ことは役に立ちません。Aharmonic(A,B,C)A.harmonic(B,C)

関数を直接呼び出す方法はありますか? このdouble.harmonic機能を無視するには?パスから関数ハンドルを作成できることは知っていますが、それは厄介です。よりエレガントなソリューションまたは回避策を探しています。最も明白なのは関数の名前を変更することですが、そうするといじめられます: - (。

4

1 に答える 1

2

のバージョンをharmonicフォルダーに入れ、フォルダーがパスの上にある@doubleことを確認します(これは Symbolic Toolbox からの新しいものです)。@double\toolbox\symbolic\symbolic\@doubledouble.harmonic

これにより、関数はジェネリック関数ではなくメソッドdoubleなります。ディスパッチ先を決定する際、MATLAB は最初にメソッドを検討し、次にジェネリック関数を検討します。あなたと他の方法はどちらも方法であり、あなたの方法が先に進んでいるので、あなたの方法が勝ちます。BAM - それを食べてください、MATLAB!double.harmonicharmonicdouble.harmonic

于 2014-05-02T22:04:18.437 に答える