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

Il file JaccardDistance si trova nella stessa cartella in cui viene eseguito questo codice. Il problema è che la parte "else" viene sempre eseguita, il che significa che non sta riconoscendo che il file JaccardDistance esiste. Che cosa sto facendo di sbagliato? Grazie in anticipo.Come verificare se un file esiste in Matlab?

+0

'dimensioni (dir ('JaccardDistance'), 1)'? – GameOfThrows

+0

Il tuo nome file non ha un'estensione? – BillBokeey

+2

Votare per chiudere perché questo è essenzialmente un refuso. Si prega di [leggere la documentazione] (http://www.mathworks.com/help/matlab/ref/exist.html) per le funzioni che si desidera utilizzare. – excaza

risposta

14

Per i file che esisti, restituirai un 2 non un 1. Dovresti includere anche l'estensione del file nel controllo.

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

rif matlab forum o leggere il manual:

esistono nome restituisce lo stato di nome:

  • 0 nome non esiste.
  • 1 nome è una variabile nello spazio di lavoro.
  • 2 Una delle seguenti condizioni:

    • nome esiste sul tuo MATLAB® percorso di ricerca come un file con estensione .m.
    • nome è il nome di un file ordinario nel percorso di ricerca MATLAB.
    • nome è il nome percorso completo di qualsiasi file.
+0

Penso che finché non è una cartella o classe dovrebbe funzionare, anche se non completamente testato – GameOfThrows

+0

@Andres hai ragione. il mio commento perché era sbagliato. – Daniel

0

La funzione esistono non restituisce un 1, è necessario utilizzare

if exist('JaccardDistance', 'file') 

A seconda di quello che la funzione trovato, viene restituita una vista tra 1 e 8. Se non viene trovato nulla, viene restituito uno 0.

0

Per ritornare 1 o 0 uso

size(dir('JaccardDistance'),1) 

vale a dire se la dimensione (dir ('JaccardDistance'), 1) == 1% // si dispone di un file, se 0 non avete file di

Problemi correlati