2012-02-25 9 views
7

मै मैटलैब में नया हूं। आपको यह सवाल मूर्खतापूर्ण मिल सकता है लेकिन मुझे आश्चर्य है कि नीचे दिया गया बयान पास-बाय-वैल्यू ऑपरेशन या पास-बाय-रेफरेंस ऑपरेशन है।क्या मैटलैब मैट्रिस पास-दर-मूल्य या पास-बाय-रेफरेंस स्थानांतरित कर रहे हैं?

I = imread('logo.png'); 
binaryImage = im2bw(I, 0.4); 
Itemp = binaryImage; 

Itemp एक नया मैट्रिक्स जिनके मान binaryImage से नकल कर रहे हैं होता है या वह binaryImage करने के लिए सिर्फ एक सूचक है?

+2

तुम क्यों Matlab के आंतरिक भागों को लेकर चिंतित हैं का उपयोग करता है? प्रोग्रामर के दृष्टिकोण से यह सरणी की एक प्रति है। आंतरिक रूप से यह शायद एक संदर्भ गिना गया ऑब्जेक्ट है जो एक प्रतिलिपि बना देगा यदि आप इसे संशोधित करते हैं। – QuentinUK

उत्तर

12

यह संदर्भ द्वारा पारित है जब तक आप Itemp संशोधित करते हैं।

जब आप Itemp संशोधित करते हैं तो मैटलैब binaryImage से Itemp कॉपी करेगा और फिर इसे संशोधित करेगा।

मैं जबकि एक जाना कुछ दिलचस्प परीक्षण एक बना दिया। यदि आप करते हैं:

A=rand(100);B=A;C=B;D=A;E=B; 

स्मृति में केवल एक प्रति को रखा जाता है। आप A

A(1)=1; 

फिर संशोधित करते हैं, matlab नई A के लिए मैट्रिक्स के एक नई प्रतिलिपि, और चर B, C, D, E अभी भी पुराने A की मैट्रिक्स को इंगित।

+0

है कि इसका जवाब मैं धन्यवाद की जरूरत है;) –

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