matlab

2012-11-06 20 views
21

में सीधे तार्किक मैट्रिक्स बनाने का तरीका मैं अब तक तार्किक मैट्रिक्स बनाने के लिएmatlab

a = logical(zeros(10,10)) 

उपयोग किया गया है।

क्या इसे सीधे बनाने का कोई तरीका है? सीधे

उत्तर

-1

मैटलैब की तार्किक डेटा प्रकार logical समारोह खुद के अलावा किसी अन्य निर्माता है प्रतीत नहीं होता है। इसका अर्थ है कि आप प्रभावी रूप से एक तार्किक सरणी के रूप में एक डबल सरणी बहुत आसानी से है, जहां सभी अशून्य मान तर्क 1 बनने के लिए और सब शून्य तर्क 0 टाइपकास्ट कर सकते हैं:

A = [1 0 2; -1 0 0; 0 1.53 -100.00] 

B = logical(A) 

B = 
    1  0  1 
    1  0  0 
    0  1  1 

आप स्पष्ट रूप से यदि आप एक पंक्ति को यह काम गाढ़ा कर सकते हैं ' डी पसंद है, तो यह किसी अन्य डेटा प्रकार को असाइन करने के रूप में लगभग सरल हो जाता है।

+0

चेक आउट मेरे उत्तर में लिंक - 'झूठी' और 'सत्य' का उपयोग 'शून्य' और 'एक' की तरह किया जा सकता है, ताकि डबल परिशुद्धता मैट्रिक्स की बजाय तार्किक मैट्रिक्स को सीधे प्रारंभ किया जा सके। – tmpearce

+0

सहमत है, हालांकि यह केवल एक पूरी तरह से सच या पूरी तरह से झूठी सरणी शुरू करता है - जो ठीक हो सकता है, या आप सीधे मानों को नियंत्रित करना चाहते हैं। क्या आप इस तरह से सच और झूठे लाभ उठा सकते हैं? या आप एक डबल सरणी पर तार्किक का उपयोग कर फंस गए हैं? – nicktruesdale

+0

उत्तर: यदि आप बड़े सरणी के लिए छद्म वाक्यविन्यास को ध्यान में रखते हैं, तो एक = [झूठा, सत्य; झूठी झूठी] सीधे काम करता है। – nicktruesdale

8

मैटलैब में, कुछ 'स्थिरांक' हैं जो वास्तव में मैट्रिक्स-जनरेटिंग कमांड हैं। वे हैं:

true(10); true(n,m,k,..); % for an all-true 10-by-10 or n-by-m-by-k-by-...matrix 
false(10); false(n,m,k,..); % for an all-false 10-by-10 or n-by-m-by-k-by-...matrix 
inf(10); inf(n,m,k,..); % for an all-inf 10-by-10 or n-by-m-by-k-by-...matrix 
nan(10); nan(n,m,k,..); % for an all-nan 10-by-10 or n-by-m-by-k-by-...matrix 

'निरंतर' रूपों मूल रूप से सिर्फ उपनाम हैं:

a = inf; % alias for a = inf(1); 
b = true; % alias for b = true(1); 

आदि इसके अलावा, यहाँ कुछ और बातें पर्याप्त दोहराया नहीं जा सकता है कि कर रहे हैं:

rand(10); rand(n,m,k,..); % for an all-random 10-by-10 or n-by-m-by-k-by-...matrix 
zeros(10); zeros(n,m,k,..); % for an all-zero 10-by-10 or n-by-m-by-k-by-...matrix 
zeros(n,m,k,...,'uint8');  % for an all-zero n-by-m-by-k-by-...matrix of type uint8 
ones(10); zeros(n,m,k,..); % for an all-one 10-by-10 or n-by-m-by-k-by-...matrix 
ones(n,m,k,...,'uint8');  % for an all-one n-by-m-by-k-by-...matrix of type uint8 
eye(10); eye(n,m,'uint8'); % for an identity matrix of type uint8 of 10-by-10 or n-by-m