2015-09-03 25 views
29

हम मैटलैब में अनुक्रमण के विभिन्न रूपों के लिए इस्तेमाल किया जाता है:रैखिक अनुक्रमण, तार्किक अनुक्रमण, और जो कुछ

  • मानक (प्रत्येक आयाम के साथ पूर्णांकों का उपयोग),
  • तार्किक (का उपयोग करते हुए तार्किक मान),
  • रैखिक (एक से अधिक आयाम वाले सरणी को पार करने के लिए एक एकल अनुक्रमणिका का उपयोग करना)।

पहली बार, ऐसा लगता है कि ये रूप अनन्य हैं: एक सूचकांक या तो मानक, या तार्किक, या रैखिक है। हालांकि, कभी-कभी इन रूपों में से कई के बीच मिश्रण दिखाई देता है। उदाहरण के लिए,

>> A = magic(3) 
A = 
    8  1  6 
    3  5  7 
    4  9  2 
>> A(A>5) 
ans = 
    8 
    9 
    6 
    7 

यह तार्किक अनुक्रमण है, है ना? लेकिन इसमें रैखिक अनुक्रमण की कुछ विशेषताएं भी हैं, क्योंकि कॉलम वेक्टर लौटाया जाता है। वास्तव में, लॉजिकल इंडेक्स A>5 रैखिक सूचकांक find(A>5) के समान प्रभाव डालता है। पहले समन्वय, और तार्किक अनुक्रमण पल के लिए प्रयोग किया जाता है

एक दूसरे उदाहरण के रूप में,

>> A = magic(3) 
A = 
    8  1  6 
    3  5  7 
    4  9  2 
>> A(1:2, [true false true]) 
ans = 
    8  6 
    3  7 

पर विचार इस अभिव्यक्ति में, मानक (पूर्णांक मान) अनुक्रमण के लिए प्रयोग किया जाता है।

इन उदाहरणों (और अधिक जटिल है कि व्यवहार में उत्पन्न होती हैं) निम्नलिखित प्रश्नों मुद्रा:

  • किस प्रकार अनुक्रमण के मैटलैब में देखते हैं?
  • उन्हें कैसे जोड़ा जा सकता है?
  • उन्हें कैसे संदर्भित किया जाना चाहिए?
+3

लुइस पर अधिक प्रतिनिधि फेंकने का समय! मैंने यहां बहुत कुछ सीखा है, न केवल MATLAB से संबंधित, बल्कि फैंसी एसओ स्वरूपण के बारे में भी;) – Adriaan

+2

आप में से बहुत दयालु, @ एड्रियान! धन्यवाद!! आप तेजी से सीख रहे हैं! –

उत्तर

35

निम्नलिखित में मैं शब्दावली मुझे लगता है कि कम या ज्यादा लाइन में साथ मानक मैटलैब अभ्यास है का उपयोग करें। हालांकि, कुछ मामलों में मुझे एक नाम बनाना था क्योंकि मुझे मौजूदा व्यक्ति से अवगत नहीं था। अगर मैं उपयोग कर रहा हूं उससे अधिक मानक नाम हैं तो कृपया मुझे बताएं।

यह उत्तर विभिन्न प्रकार के अनुक्रमण को स्पष्ट करने और उन्हें कैसे जोड़ा जा सकता है, को स्पष्ट करने का प्रयास करता है। एक अलग सवाल यह है कि आकार (size) आउटपुट सरणी के सूचकांक चर के आकार के फ़ंक्शन के रूप में निर्धारित किया जाता है। लॉरेन श्यूर द्वारा Essence of indexing पर एक अच्छी पोस्ट है।

विवरण का पालन करने के संख्यात्मक सरणियों का अनुक्रमण पर केंद्रित है, लेकिन यह उत्पादन का प्रकार (सेल सरणी या की स्पष्ट परिवर्तन के साथ, सेल सरणियों या तो कोष्टक या घुंघराले-ब्रेस अनुक्रमण साथ करने के लिए लागू किया जा सकता है अल्पविराम से अलग क्रमशः सूची)। अंत में संक्षेप में चर्चा की जाएगी। संख्यात्मक सरणियों में अनुक्रमण के

प्रकार

अनुक्रमण निम्नलिखित दो विशेषताओं पर विचार वर्गीकृत किया जा सकता।

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

    • शुद्ध बहुआयामी अनुक्रमण सरणी के प्रत्येक आयाम के लिए एक सूचकांक चर निर्दिष्ट करता है। व्यक्तिगत इंडेक्स को कभी-कभी सबस्क्रिप्ट मैटलैब दस्तावेज़ में संदर्भित किया जाता है (उदाहरण के लिए sub2ind देखें)।
    • शुद्ध रैखिक अनुक्रमण एक एकल इंडेक्स वैरिएबल निर्दिष्ट करता है जो सभी आयामों में सरणी को घुमाता है (यह देखा जा सकता है कि सभी आयाम एक में पतन हो जाते हैं)। जैसा कि हम जानते हैं, ट्रैवर्सल पहले कॉलम के साथ है, फिर पंक्तियों के साथ, फिर तीसरे-मंद स्लाइस आदि के साथ (तथाकथित column-major order)।
    • आंशिक रूप से रैखिक अनुक्रमण: m+n आयाम, n>=2, एक पहले m आयाम पिछले n आयामों के लिए और एक सूचकांक चर (इस प्रकार उन आयामों में बहुआयामी अनुक्रमण का प्रयोग करके) है, जो के लिए m सूचकांक चर निर्दिष्ट कर सकते हैं के साथ एक सरणी दिया केवल उन आयामों के लिए एक रैखिक सूचकांक के रूप में व्याख्या की गई (अंतिम n आयाम एक में पतन)।
  2. सूचकांक मूल्यों के प्रकार के लिए Acccording, प्रत्येक सूचकांक चर पूर्णांक मूल्य या तार्किक हो सकता है:

    • यह है पूर्णांक मूल्य अगर सूचकांक चर धनात्मक पूर्णांक होता है;
    • यह तार्किक है यदि सूचकांक चर में तार्किक मान होते हैं।

वर्गीकरण मापदंड 1 और 2 स्वतंत्र हैं। मानदंड 1 के दृष्टिकोण से सूचकांक की श्रेणी मानदंड के अनुसार अपनी श्रेणी के साथ कोई संबंध नहीं है 2. सभी संयोजन संभव हैं।

इस प्रकार, उपरोक्त वर्गीकरण के अनुसार, 6 इंडेक्सिंग के मूल प्रकार हैं। स्पष्टीकरण के लिए, प्रत्येक के लिए एक उदाहरण निम्नलिखित है।

>> A([1 2], 2, 2) 
ans = 
    10 
    14 
  • रैखिक, पूर्णांक मूल्य:

    >> A([2 5:7]) 
    ans = 
        3  5  9  6 
    
  • आंशिक रूप से रेखीय सभी उदाहरण सरणी A = cat(3, magic(3), 9+magic(3)), कि है,

    A(:,:,1) = 
        8  1  6 
        3  5  7 
        4  9  2 
    A(:,:,2) = 
        17 10 15 
        12 14 16 
        13 18 11 
    
    1. बहुआयामी, पूर्णांक मान का उपयोग , पूर्णांक-मूल्यवान:

      >> A([1 2], 2:4) 
      ans = 
          1  6 17 
          5  7 12 
      
    2. बहुआयामी, तार्किक:

      >> A([true true false], [false true false], [false true]) 
      ans = 
          10 
          14 
      

      दिलचस्प है, तार्किक मान की संख्या में छोटे, या भी बड़ा हो सकता है, आयाम में आकार की तुलना में इंडेक्स को दर्शाता है:

      >> A([true true], [false true false false], [false true]) 
      ans = 
          10 
          14 
      

      गुम मानों को false के रूप में व्याख्या किया गया है, और अधिशेष मान false होना चाहिए या कोई त्रुटि उत्पन्न होगी। उदाहरण के लिए देखें this page by Mathworks या this answer by Jonas

    3. रेखीय, तार्किक:

      >> A([false true false false true true true]) 
      ans = 
          3  5  9  6 
      

      (। ध्यान दें कि 11 false मूल्यों अनुगामी अनुक्रमण वेक्टर में बाहर छोड़ दिया गया है)

    4. आंशिक रूप से रेखीय, तार्किक:

      >> A([true true false], [false true true true false false]) 
      ans = 
          1  6 17 
          5  7 12 
      

    बहुआयामी या आंशिक रूप से रैखिक अनुक्रमण में, wh में ich एक से अधिक सूचकांक चर है, प्रत्येक स्वतंत्र रूप से पूर्णांक-मूल्यवान या तार्किक हो सकता है। यह मिश्रित प्रकार को अलग करता है।

    1. बहुआयामी, तार्किक/पूर्णांक मूल्य:

      >> A([true false true], [false true true], 2) 
      ans = 
          10 15 
          18 11 
      
    2. आंशिक रूप से रेखीय, पूर्णांक मूल्य/तार्किक:

      >> A([1 2], [true false true false true false]) 
      ans = 
          8  6 10 
          3  7 14 
      
    उदाहरण के लिए

    यदि अनुक्रमित किया जा रहा सरणी स्पैस मैट्रिक्स उपर्युक्त सभी अभी भी लागू होती है, सिवाय इसके कि आंशिक रूप से रैखिक matrices के लिए dexing मौजूद नहीं है; और निश्चित रूप से परिणाम भी विचित्र है।

    सेल सरणियों

    सभी अनुक्रमण के प्रकार संख्यात्मक सरणियों के लिए वर्णित की इंडेक्सिंग सेल सरणियों के लिए लागू किया जा सकता है, एक अतिरिक्त विचार के साथ। सेल सरणी कोष्ठक या घुंघराले ब्रेसिज़ के साथ अनुक्रमित किया जा सकता है। पहले मामले में अनुक्रमण का परिणाम एक सेल सरणी है। दूसरे में यह सेल सामग्री की अल्पविराम से अलग सूची है।

    उदाहरण के लिए, मान लीजिए संख्यात्मक पिछले उदाहरण में प्रयोग किया जाता सरणी सेल सरणी C = num2cell(A), वह यह है कि में तब्दील हो जाता,

    C(:,:,1) = 
        [8] [1] [6] 
        [3] [5] [7] 
        [4] [9] [2] 
    C(:,:,2) = 
        [17] [10] [15] 
        [12] [14] [16] 
        [13] [18] [11] 
    

    तो उदाहरण 8 ऊपर में इस्तेमाल अनुक्रमण सेल सरणी प्राप्त होते हैं

    >> C([1 2], [true false true false true false]) 
    ans = 
        [8] [6] [10] 
        [3] [7] [14] 
    

    घुंघराले ब्रेसिज़ का उपयोग कर प्राप्त होते हैं अल्पविराम द्वारा पृथक सूची

    >> C{[1 2], [true false true false true false]} 
    ans = 
        8 
    ans = 
        3 
    ans = 
        6 
    ans = 
        7 
    ans = 
        10 
    ans = 
        14 
    
    जबकि

    टेक-दूर संदेश/टीएल; डीआर

    तार्किक और रैखिक अनुक्रमण इंडेक्सिंग के अनन्य प्रकार नहीं हैं। इसके बजाय, वे अनुक्रमण की दो स्वतंत्र विशेषताएं हैं। "लॉजिकल" इंडेक्स वैल्यू के प्रकार को संदर्भित करता है, और "रैखिक" इंगित करता है कि कई आयामों को ध्वस्त कर दिया गया है और एक के रूप में अनुक्रमित किया जा रहा है। दोनों विशेषताएं एक साथ हो सकती हैं।

  • +3

    यह एक बक्षीस का हकदार है। जब पोस्ट योग्य है, तो मैं आपको एक असाइन करूंगा। मैंने सवाल और जवाब भी उठाया है। लुइस बहुत अच्छा काम! – rayryeng

    +0

    @rayryeng इसके लिए धन्यवाद! लेकिन वास्तव में मैं बहुत नया नहीं कह रहा हूं। मैंने बस अनुक्रमण के बारे में अपने विचारों को व्यवस्थित करने की कोशिश की :-) –

    +0

    मैंने पहली बार सोचा कि यह [यह क्यू/ए] (http://stackoverflow.com/questions/20054047/subscript-indices-must-either- हो-वास्तविक सकारात्मक-पूर्णांक या Logicals-सामान्य-सोल)। यह नहीं है, लेकिन यह किसी भी तरह से अत्यधिक संबंधित है। मैं इस जवाब को शामिल करता हूं क्योंकि यह गलत अनुक्रमण से संबंधित सभी त्रुटियों को समझाता है। – thewaywewalk

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