जवाबों:
एकल एम्परसेंड तार्किक और ऑपरेटर है। डबल एम्परसेंड और& फिर से एक तार्किक और ऑपरेटर है जो शॉर्ट-सर्कुलेटिंग व्यवहार को नियोजित करता है। शॉर्ट-सर्कुलेटिंग का अर्थ केवल दूसरा ऑपरेंड (दाएं हाथ की ओर) का मूल्यांकन केवल तब होता है जब परिणाम पहले ऑपरेंड (बाएं हाथ की ओर) द्वारा पूरी तरह से निर्धारित नहीं किया जाता है
ए और बी (ए और बी का मूल्यांकन किया जाता है)
A && B (B केवल तभी मूल्यांकन किया जाता है यदि A सत्य है)
d != 0 && 1/d
बनाम d !=0 & 1/d
- पहला शून्य से कोई विभाजन की गारंटी देता है, दूसरा नहीं।
&
एक if
बयान में अगर शॉर्ट-सर्किट करता है । और &&
अदिश इनपुट्स लेता है। @ नीचे लोरेन का जवाब सही है।
&&
और ||
अदिश इनपुट और शॉर्ट-सर्किट हमेशा लें। |
और &
सरणी इनपुट्स और शॉर्ट-सर्किट केवल यदि / जबकि बयानों में लेते हैं। असाइनमेंट के लिए, बाद वाले शॉर्ट-सर्किट नहीं करते हैं।
देखें इन दस्तावेज़ पृष्ठों अधिक जानकारी के लिए।
&
और |
यदि / जबकि बयानों में? R2012b और R2014a में ऐसा नहीं है।
जैसा कि पहले ही दूसरों ने उल्लेख किया है, &
एक तार्किक और ऑपरेटर है और &&
एक शॉर्ट-सर्किट और ऑपरेटर है । वे अलग-अलग तरीकों से मूल्यांकन करते हैं कि वे एरेज़ या स्केलर पर काम करते हैं या नहीं।
&
(और ऑपरेटर) और |
(या ऑपरेटर) तत्व-वार फैशन में सरणियों पर काम कर सकते हैं ।&&
और ||
शॉर्ट-सर्किट संस्करण हैं जिनके लिए दूसरे ऑपरेंड का मूल्यांकन केवल तब किया जाता है जब परिणाम पहले ऑपरेंड द्वारा पूरी तरह से निर्धारित नहीं किया जाता है। ये केवल स्केलर पर काम कर सकते हैं , न कि सरणियाँ।अन्य भाषाओं के समान, &
एक तार्किक बिटवाइज़ ऑपरेटर है, जबकि &&
एक तार्किक ऑपरेशन है।
उदाहरण के लिए (मेरे वाक्यविन्यास को क्षमा करें)।
अगर..
A = [True True False True]
B = False
A & B = [False False False False]
..or ..
B = True
A & B = [True True False True]
के लिए &&
, सही संकार्य केवल गणना की जाती है, तो बाईं संकार्य सच है, और परिणाम एक भी बूलियन मान है।
x = (b ~= 0) && (a/b > 18.5)
उम्मीद है कि स्पष्ट है।
bitand
MATLAB में बिटवाइज़ लॉजिकल और ऑपरेटर है।
&& और || शॉर्ट सर्किट ऑपरेटर स्कैलर्स पर काम कर रहे हैं । और | सरणियों पर काम करते हैं, और शॉर्ट-सर्किट का उपयोग केवल के संदर्भ में if
या while
पाश भाव।
सशर्त कथन (IF, WHILE, आदि) में उपयोग के लिए तर्क का निर्माण करते समय अंगूठे का एक अच्छा नियम हमेशा && / का उपयोग करना है || रूपों, जब तक वहाँ एक बहुत अच्छा कारण नहीं है। इसके दो कारण हैं ...
ऐसा करने के बजाय MATLAB के वैक्टर में & & | के संकल्प पर निर्भर होने के बजाय, कोड की ओर जाता है जो थोड़ा अधिक क्रिया है, लेकिन बहुत सुरक्षित और बनाए रखने में आसान है।
r((r<2)&(r<2))
"।
&
सरणियों पर काम कर सकता है, लेकिन&&
केवल स्केलर पर काम कर सकता है।