मैं MATLAB में एक स्क्रिप्ट लिखने की कोशिश कर रहा हूं जो संख्याओं की 2 डी सरणी के न्यूनतम मान का स्थान पाता है। मुझे यकीन है कि इस सरणी में केवल 1 न्यूनतम है, इसलिए सरणी में एक ही न्यूनतम मूल्य वाले एकाधिक स्थान होने पर कोई समस्या नहीं है। मैं सरणी की न्यूनतम मूल्य पा सकते हैं, लेकिन एक 30x30 सरणी में, मुझे पता है कि जो पंक्ति और स्तंभ है कि न्यूनतम मूल्य में है चाहते हैं। min समारोह के विवरण पर2 डी सरणी में न्यूनतम मान की अनुक्रमणिका प्रदर्शित करने के लिए MATLAB कैसे प्राप्त करें?
उत्तर
एक वैकल्पिक संस्करण के रूप में, कम से कम मूल्य प्राप्त करने के मिनट गठबंधन और सूचकांक वापस जाने के लिए, यदि आप पहले से ही कम से कम द्वारा परिकलित तो बस लगता है का उपयोग पाते हैं।
>> a=magic(30);
>> [r,c]=find(a==min(min(a)))
r =
1
c =
8
या कैसे आप स्थान की जानकारी आप के बजाय एक तार्किक सरणी के साथ यह निर्धारित करना चाहते हो सकता है, जो मामले में तार्किक को संबोधित कर आप एक सच तालिका देने के लिए इस्तेमाल किया जा सकता का उपयोग करना चाहते हैं पर निर्भर करता।
>> a=magic(30);
>> locn=(a==min(min(a)));
देखो। यह न्यूनतम मूल्य के साथ ही सूचकांक वापस कर सकता है। दो आयामी सरणी के लिए, बस इसे दो बार कॉल करें।
A = rand(30); % some matrix
[minColVal, minColIdx] = min(A);
[minRowVal, minRowIdx] = min(minColVal);
minVal = minRowVal;
minValIdx = [minColIdx(minRowIdx), minRowIdx];
संपादित करें: @ बी 3 के समाधान शायद computationally अधिक सुरुचिपूर्ण है (तेजी से और की जरूरत कम अस्थायी अंतरिक्ष)
आप एक वेक्टर के लिए मैट्रिक्स नयी आकृति प्रदान कर सकता है, MIN का उपयोग कर कम से कम के सूचकांक खोजने के लिए और उसके बाद इस कन्वर्ट एक मैट्रिक्स सूचकांक में रैखिक सूचकांक:
>> x = randi(5, 5) x = 5 4 4 2 4 4 2 4 5 5 3 1 3 4 3 3 4 2 5 1 2 4 5 3 5 >> [value, index] = min(reshape(x, numel(x), 1)); >> [i,j] = ind2sub(size(x), index) i = 3 j = 2
+1 सुरुचिपूर्ण समाधान! – groovingandi
आप कुछ वर्णों को सहेजने के लिए x (:) के बजाय reshape() के बजाय उपयोग कर सकते हैं। – zellus
@ ज़ेलस: मुझे याद दिलाने के लिए धन्यवाद! मुझे यह घबराहट महसूस हो रही थी कि ऐसा करने का एक और तरीका था। –
एक वेक्टर के एक सबसेट में न्यूनतम या अधिकतम ढूंढने के लिए - एक एक वेक्टर और "lowerBound" और "upperBound" है वेक्टर की सीमा से जो बीच में आप अधिकतम खोजने की जरूरत है कर रहे हैं (या मिनट) मूल्य है, तो इस आदेश का उपयोग करें -
[Value,Index]=min(A(lowerBound:upperBound));
यह रिटर्न "मान" मिनट या अधिकतम मूल्य एक (lowerBound के बीच) और A (uppedBound) और "सूचकांक" के रूप में "lowerBound" के रूप में ऑफसेट के साथ के रूप में। तो पूर्ण अनुक्रमणिका को खोजने के लिए, आपको इंडेक्स में "लोअरबाउंड" जोड़ना होगा।
इनलाइन फ़ंक्शन का उपयोग करके एक वैकल्पिक समाधान काम करेगा।
>> min_index = @(matrix) find(matrix == min(reshape(matrix, [1,numel(matrix)])));
>> a=magic(30);
>> [r,c]=min_index(a)
r =
1
c =
8
- 1. रूबी: न्यूनतम सरणी तत्व की अनुक्रमणिका कैसे प्राप्त करें?
- 2. 2 डी सरणी मान C++
- 3. 2 डी सरणी के रैपर वर्ग के लिए सरणी अनुक्रमणिका ऑपरेटर को अधिभार कैसे करें?
- 4. मैं एक एन-डी सरणी के दो अंतिम आयामों को 2 डी सरणी के रूप में कैसे प्राप्त करूं?
- 5. एक सरणी में न्यूनतम मान खोजें
- 6. 2 डी सरणी से मानों की एक पंक्ति को 1 डी सरणी में कैसे कॉपी करें?
- 7. 2 डी सरणी अजगर
- 8. शून्य की 2 डी सरणी
- 9. सूची की अंतिम अनुक्रमणिका कैसे प्राप्त करें?
- 10. पायथन/numpy: 2 डी सरणी कॉलम लंबाई कैसे प्राप्त करें?
- 11. Matlab में 2 डी एफएफटी कैसे प्लॉट करें?
- 12. सरल 2 डी सेल सरणी
- 13. 2 डी सरणी
- 14. सरणी (MATLAB) की दर्पण छवि कैसे प्राप्त करें?
- 15. घुमावदार 2 डी सरणी
- 16. सी में एक फाइल करने के लिए 2 डी सरणी
- 17. 2 डी सरणी
- 18. बाइट सरणी हेक्स मान कैसे प्रदर्शित करें?
- 19. 2 डी सरणी
- 20. 2 डी सरणी
- 21. सीएसवी फ़ाइल में तीसरे सरणी के आधार पर रंग प्रदर्शित करने के लिए 2 डी स्कैटरप्लॉट को कैसे संशोधित करें?
- 22. केवल 2 डी सरणी
- 23. एक 2 डी सरणी
- 24. matlab में 2 डी रूपांतरण - कोड अनुकूलन
- 25. matlab में dicom छवि को प्रदर्शित करने के लिए कैसे?
- 26. 2 डी सरणी के लिए एक सूचक
- 27. डी समारोह में ... के सरणी के सरणी प्राप्त करें?
- 28. 2 डी सरणी
- 29. एक 2 डी सरणी
- 30. MATLAB: बहुआयामी सरणी में मान के निर्देशांक ढूँढना
धन्यवाद !! बिल्कुल मुझे क्या चाहिए! –