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

फ़ाइल जैककार्डडिस्टेंस उसी फ़ोल्डर में है जहां यह कोड निष्पादित किया जा रहा है। समस्या यह है कि "अन्य" भाग हमेशा निष्पादित किया जा रहा है, जिसका अर्थ है कि यह पहचान नहीं कर रहा है कि फ़ाइल जैककार्डडिस्टेंस मौजूद है। मैं क्या गलत कर रहा हूं? अग्रिम में धन्यवाद।मैटलैब में कोई फ़ाइल मौजूद है या नहीं?

+0

'आकार (डीआईआर ('जैककार्डडिस्टेंस'), 1)'? – GameOfThrows

+0

क्या आपके फ़ाइल नाम का विस्तार नहीं है? – BillBokeey

+2

बंद करने के लिए वोटिंग क्योंकि यह अनिवार्य रूप से एक टाइपो है। कृपया उन कार्यों के लिए [दस्तावेज़ीकरण पढ़ें] (http://www.mathworks.com/help/matlab/ref/exist.html) जिन्हें आप उपयोग करना चाहते हैं। – excaza

उत्तर

14

आपके द्वारा मौजूद फ़ाइलों के लिए 2 को 1 नहीं लौटाएगा। आपको फ़ाइल में फ़ाइल एक्सटेंशन भी शामिल करना चाहिए।

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

रेफरी matlab forum या पढ़ manual:

मौजूद नाम नाम की स्थिति देता है:

  • 0 नाम मौजूद नहीं है।
  • 1 नाम वर्कस्पेस में एक चर है।
  • 2 निम्न में से एक सत्य है:

    • नाम एक्सटेंशन मीटर के साथ एक फ़ाइल के रूप में अपने MATLAB® खोज पथ पर मौजूद है।
    • नाम आपके MATLAB खोज पथ पर एक साधारण फ़ाइल का नाम है।
    • नाम किसी भी फ़ाइल का पूरा पथनाम है।
+0

मुझे लगता है कि जब तक यह कोई फ़ोल्डर या वर्ग नहीं है, तो इसे काम करना चाहिए, हालांकि पूरी तरह से – GameOfThrows

+0

@Andres का परीक्षण नहीं किया गया है। मेरी टिप्पणी क्योंकि यह गलत था। – Daniel

0

अस्तित्व समारोह एक 1 वापस नहीं करता है, तो आप

if exist('JaccardDistance', 'file') 

उपयोग करने के लिए क्या समारोह पाया, 1 और 8 के बीच एक दृश्य दिया जाता है पर निर्भर करता है है। यदि कुछ भी नहीं मिला है, तो 0 वापस आ गया है।

0

वापस जाने के लिए 1 या 0 उपयोग

size(dir('JaccardDistance'),1) 

यानी आकार (dir ('JaccardDistance'), 1) == 1% // आप एक फ़ाइल है 0 आप कोई फ़ाइल है

संबंधित मुद्दे