4

みんな

Matlab で @folder を処理する際に問題があります。

@folder が含まれている親フォルダーのパスを追加しました。しかし、それでも @folder の関数を使用できませんでした。つまり、たとえば、ttt.m という関数を直接呼び出すと、次のようになります。

ttt(引数)

戻り値: 未定義の関数または変数。

しかし、ヘルプコマンドを使用してそれを見ると、うまくいきます:

助けて

ttt関数の情報を返します

ここで何が起こっているのかわかりません。助けてください。

4

1 に答える 1

4

これらのフォルダーには、カスタム クラスのコードまたは既存の型のオーバーライドが含まれています。それらをパスに配置したり、直接使用したりするのではなく、クラスを介して使用します。

1 つのクラス定義に複数のファイルを使用する場合は、このタイプのフォルダーを使用します。... @ フォルダーはパス フォルダーに含まれている必要がありますが、それ自体は MATLAB パス上にありません。クラス定義ファイルを @ フォルダー内に配置します。このフォルダーには、別のメソッド ファイルを含めることもできます。クラス定義ファイルは、@ フォルダーと同じ名前 (@ 記号を除く) である必要があり、クラス定義 (classdef キーワードで始まる) は、他のコードよりも前にファイル内に存在する必要があります (空白やコメントは構成要素ではありません)。コード)。

これは、クラスを定義する元の方法です。新しい方法は、すべてを 1 つのファイルに収めることです。 ここでは、2 つの方法について説明します

EDIT : 問題のメソッドがStaticの場合、インスタンスは必要ありません。それ以外の場合は、クラスのインスタンスを作成する必要があります。静的メソッドの詳細と、クラスをインスタンス化してメソッドを呼び出す例については、こちらを参照してください。メソッドの呼び出し方法に関する詳細な説明は、MATLAB OOP のドキュメントにあります。

于 2013-10-28T17:55:30.210 に答える