मेरे पास Matlab में अनुक्रम सरणी है:
-60528084 -60780607 -60497166 -60750204 -60466187 -60719738 -60435147 -60689209 -60404046 -60658618 -60372884 -60627965 -60341661 -60597249 -60310378 -60566472 -60279035 -60535633 -60247632 -60504732 -60216170 -60473770 -60184647 -60442747 -60153066 -60411663 -60121425 -60380518 इस तरह से इस सरणी को सॉर्ट करने के लिए मुझे कोड / फंक्शन की आवश्यकता है:
-60780607 -60750204 -60719738 -60689209 -60658618 -60627965 -60597249 - 60566472 -60528084 -60535633 -60497166 -60504732 -60466187 -60473770 -60435147 -60442747 -60404046 -60411663 -60372884 -60380518 -60341661 -60310378 -60279035 -60247632 -60216170 -60184647 -60153066 -60121425 < P> यह सॉर्ट क्या करता है उन पंक्तियों के मूल्यों से मेल खाने के लिए जो बहुत समान हैं। मान समान नहीं हैं, लेकिन लगभग समान हैं
आप उपयोग कर सकते हैं:
[ms, ix] = sort (एम (:)) पूरी तरह से सूचीबद्ध सूची और मैट्रिक्स मी के रैखिक इंडेक्स दोनों को प्राप्त करने के लिए तो आप सॉर्ट किए गए इंडेक्स के संबंधित स्तंभ प्राप्त करने के लिए ind2sub का उपयोग कर सकते हैं: [r c] = ind2sub (आकार (एम), ix); फिर उस सॉर्ट किए गए वेक्टर का अंतर और निकटता थ्रेशोल्ड सेट (10000 कहते हैं),
proximity_threshold = 1e4; की आवश्यकता के रूप में% # परिवर्तन ind = (diff (ms) & lt; proximity_threshold) फिर थ्रेशोल्ड की स्थिति का उपयोग करके अपना उत्तर फिर से बनाएं:
n = 0; nn = 0; जबकि n & lt; numel (ix) n = n + 1; nn = nn + 1; कोशिश करें अगर इंड (एन) & amp; सी (एन) ~ = सी (एन + 1) ए (एनएन, सी (एन)) = एमएस (एन); एक (nn, ग (n + 1)) = एमएस (n + 1); एन = n + 1; अन्य एक (एनएन, सी (एन)) = एमएस (एन); एंड एंड एंड ए = 0-60780607 0 -60750204 0 -60719738 0 -60689209 0 -60658618 0 -60627965 0 -60597249 0 -60566472 -60528084 -60535633 -60497166 -60504732 -60466187 -60473770 -60435147 -60442747 -60404046 -60411663 - 60372884 -60380518 -60341661 0 -60310378 0 -60279035 0 -60247632 0 -60216170 0 -60184647 0 -60153066 0
No comments:
Post a Comment