7

ここに画像の説明を入力

unitTester ファイルを実行する前に、常にこれを行う必要があります。なぜこれが必要なのか理解できません。これは何を意味するのでしょうか?そして、なぜ"Add to Path > Selected Folders and Subfolders"十分ではないのですか?

【更新】 ここ問題かもしれません。カーネルは、ファイル名が同じであるさまざまな手法でプログラムされています。それぞれの場合に特定のファイルのみが使用されるようにする必要があります。ここでパッケージを使用して名前空間を台無しにしない最も簡単な方法はありますか?

4

3 に答える 3

6

MATLAB はその検索パスで m-ファイルを検索しますpath。コマンドを使用して表示できます。MATLAB パス上に同じベース名 (つまり、ディレクトリを除く拡張子の前のファイル名の部分) を持つ複数の m-ファイルがある場合、MATLAB はパス上で最初に来るファイルのみを実行できます。

addpathおよび関数を使用してrmpath、パスを動的に変更できます。たとえば、テスト実行スクリプトに関連するディレクトリを自動的に追加できます。パスリストの先頭に新しいパスを追加することに注意してくださいaddpath。これにより、既存のエントリよりも優先されます。

このような名前の競合を防ぐもう 1 つの方法は、パッケージです。

編集: ディレクトリをパッケージに変換するには、次の手順を実行します。

  • +その名前の先頭にa を追加します。
  • ディレクトリの親を MATLAB パスに置いていることを確認してください。
  • パッケージ内の関数へのすべての呼び出しを、関数の前に追加するかpackagename.、呼び出しの前にパッケージの内容を含めることによって更新します ( import packagename.*)。

一般的に、動的パスの変更よりもパッケージの方が使いやすいので、パッケージの方が好きです。パッケージをネストできることに注意してください (つまりmy_matlab_files/+mypkg/+nested/foo.m)。

于 2013-04-11T05:58:14.670 に答える
0

Matlab r2015a を使用した OS X 10.10.3 でも同じ問題が発生しました。

私は自分のファイルを持っていました~/electrochemistry/Matlab/

どういうわけか、最後のフォルダーの名前を小文字に変更すると、問題が解決しました。トラブルシューティング中に、Matlab が を探していることに気付きましたが~/electrochemistry/matlab/、探しているもの (つまり、実行していた .m ファイル) が見つかりませんでした。

だから今私は働いていて~/electrochemistry/matlab/、問題は解決しました

于 2015-06-28T18:07:54.387 に答える