मैं अजगर की सुन्न लाइब्रेरी का उपयोग करके, इसकी कई पंक्तियों और स्तंभों के क्रम को बदलकर एक घने वर्ग संक्रमण मैट्रिक्स को संशोधित करना चाहता हूं। गणितीय रूप से यह मैट्रिक्स को क्रमपरिवर्तन मैट्रिक्स P से पूर्व-गुणा करने और P ^ -1 = P ^ T से गुणा करने से संबंधित है, लेकिन यह एक कम्प्यूटेशनल रूप से उचित समाधान नहीं है।
अभी मैं मैन्युअल रूप से पंक्तियों और स्तंभों की अदला-बदली कर रहा हूं, लेकिन मुझे उम्मीद है कि एक अच्छा कार्य f (M, v) के लिए पर्याप्त होगा जहाँ M में n पंक्तियाँ और स्तंभ हैं, और v में n प्रविष्टियाँ हैं, ताकि f (M, v) अपडेट सूचकांक क्रमांक v के अनुसार M। हो सकता है कि मैं इंटरनेट पर खोज करने में असफल रहा हो।
ऐसा कुछ संभव हो सकता है सुपी के "उन्नत अनुक्रमण" के साथ, लेकिन मेरी समझ यह है कि ऐसा समाधान इन-प्लेस नहीं होगा। कुछ साधारण स्थितियों के लिए भी यह अलग से एक इंडेक्स परमीशन को ट्रैक करने के लिए पर्याप्त हो सकता है, लेकिन यह मेरे मामले में सुविधाजनक नहीं है।
जोड़ा गया:
कभी-कभी जब लोग क्रमपरिवर्तन के बारे में बात करते हैं, तो उनका अर्थ केवल यादृच्छिक क्रमपरिवर्तन का नमूना होता है, उदाहरण के लिए आंकड़ों में पी-मान प्राप्त करने के लिए एक प्रक्रिया के भाग के रूप में। या उनका मतलब है कि गिनती करना या सभी संभव क्रमपरिवर्तन की गणना करना। मैं इन चीजों के बारे में बात नहीं कर रहा हूं।
जोड़ा गया:
मैट्रिक्स डेस्कटॉप रैम में फिट होने के लिए काफी छोटा है लेकिन इतना बड़ा है कि मैं इसे बिना सोचे-समझे कॉपी नहीं करना चाहता। वास्तव में मैं जितना हो सके मैट्रिसेस का उपयोग करना चाहूंगा, लेकिन मैं उन्हें रैम में नहीं रखने की असुविधा से निपटना चाहता हूं, और मैं मैट्रिक्स पर O (N ^ 3) LAPACK संचालन करता हूं जो कि व्यावहारिक मैट्रिक्स आकार को सीमित करें। मैं वर्तमान में इस बड़े पैमाने पर अनावश्यक रूप से मैट्रिसेस की प्रतिलिपि बनाता हूं, लेकिन मुझे उम्मीद है कि यह क्रमचय के लिए आसानी से बचा जा सकता है।
M[v]
पंक्तियों को अनुमति देना है।