2008-09-25 15 views
45

मैं किसी विशेष कॉलम के अनुसार एक मैट्रिक्स को सॉर्ट करना चाहता हूं। sort फ़ंक्शन है, लेकिन यह सभी कॉलम स्वतंत्र रूप से टाइप करता है।मैं एक कॉलम के संबंध में MATLAB में 2-डी सरणी कैसे क्रमबद्ध कर सकता हूं?

उदाहरण के लिए, अगर मेरे मैट्रिक्स data है:

1  3 
5  7 
-1  4 

फिर वांछित निर्गम (पहले कॉलम द्वारा सॉर्ट) होगा:

-1  4 
1  3 
5  7 

लेकिन sort(data) के उत्पादन में है:

-1  3 
1  4 
5  7 

मैं इस मैट्रिक्स को पहले कॉलम से कैसे क्रमबद्ध कर सकता हूं?

उत्तर

75

मुझे लगता है कि sortrows फ़ंक्शन वह है जिसे आप ढूंढ रहे हैं।

>> sortrows(data,1) 

ans = 

    -1  4 
    1  3 
    5  7 
+1

धन्यवाद। मुझे आश्चर्य है कि मैंने इसे "देखने के लिए" में क्यों नजरअंदाज कर दिया – Midhat

3

sortrows() के लिए एक वैकल्पिक है, जो व्यापक परिदृश्य के लिए लागू किया जा सकता है।

  1. बचाने आप से ऑर्डर करने के लिए चाहते हैं पंक्ति/स्तंभ की छँटाई सूचकांक: पिछले अनुसार क्रमबद्ध सूचकांक के अनुसार

    [~,idx]=sort(data(:,1)); 
    
  2. सभी पंक्तियों/स्तंभों पुन: व्यवस्थित करें

    data=data(idx,:) 
    
संबंधित मुद्दे