2015-12-04 290 views
7
if exist('JaccardDistance', 'file')==1 
    load('JaccardDistance'); 
else 
    % Do things 
end 

ファイルJaccardDistanceは、このコードが実行されているのと同じフォルダにあります。問題は "else"部分が常に実行されていることです。つまり、ファイルJaccardDistanceが存在することを認識していません。私は間違って何をしていますか?前もって感謝します。Matlabにファイルが存在するかどうかを確認するには?

+0

'サイズ(DIR( 'JaccardDistance')、1)'? – GameOfThrows

+0

ファイル名に拡張子がありませんか? – BillBokeey

+2

これは基本的にタイプミスであるため投票を終了します。使用したい機能については、[ドキュメントを読む](http://www.mathworks.com/help/matlab/ref/exist.html)をご覧ください。 – excaza

答えて

14

あなたが存在するファイルの場合は、1ではなく2を返します。また、チェックにファイル拡張子を含める必要があります。

if exist('JaccardDistance.m', 'file') == 2 

REF matlab forum またはmanualをお読みください。

名は名前のステータスを返し存在:

  • 0名前は存在しません。
  • 1名前は、ワークスペース内の変数です。
  • 2次のいずれかに該当する:

    • 名は、拡張子.mを持つファイルとしてMATLAB®検索パス上に存在します。
    • nameは、MATLAB検索パス上の通常のファイルの名前です。
    • nameは、任意のファイルの絶対パス名です。
+0

フォルダやクラスではないと思っていますが、徹底的にテストされていませんが、 – GameOfThrows

+0

あなたは正しいです。それは間違っていたので、私のコメント。 – Daniel

0

が存在機能を使うには、関数は、1と8の間のビューが返された内容に応じて

if exist('JaccardDistance', 'file') 

を使用する必要があり、1を返しません。何も見つからなければ、0が返されます。

0

1または0の使用戻るには

size(dir('JaccardDistance'),1) 

すなわち0あなたは何のファイルを持っていない場合はサイズ(DIR( 'JaccardDistance')は、1)== 1%//そのファイルを持っている場合

関連する問題