कहें कि हमारे पास आकार का मैट्रिक्स 100x3पंक्तियों का यादृच्छिक क्रम Matlab
आप MATLAB में पंक्तियों को कैसे घुमाएंगे?
कहें कि हमारे पास आकार का मैट्रिक्स 100x3पंक्तियों का यादृच्छिक क्रम Matlab
आप MATLAB में पंक्तियों को कैसे घुमाएंगे?
एक मैट्रिक्स की पंक्तियां शफ़ल के लिए, आपको RANDPERM
shuffledArray = orderedArray(randperm(size(orderedArray,1)),:);
randperm
उपयोग कर सकते हैं N
यादृच्छिक मानों की सूची पैदा करते हैं और उन्हें सॉर्ट होगा, परिणाम के रूप में sort
की दूसरी उत्पादन लौटने।
आपका समाधान कम से कम मेरे कंप्यूटर पर 2.5x तेज है, कम से कम मेरे कंप्यूटर पर। – KnowledgeBone
यह मैटलैब के randsample फ़ंक्शन के माध्यम से मैट्रिक्स पंक्तियों के लिए एक नया यादृच्छिक अनुक्रमणिका बनाकर किया जा सकता है।
matrix=matrix(randsample(1:length(matrix),length(matrix)),:);
मुझे लगता है कि आप '' false'' का उपयोग करना चाहते हैं - यदि प्रतिस्थापन के साथ नमूनाकरण होता है, परिणामी मैट्रिक्स में डुप्लिकेट पंक्तियां होंगी, जबकि अन्य गायब हो जाएंगे। मामले के बिना नमूनाकरण के मामले में, 'randsample' कॉल' randperm', जो इस प्रकार 'रैंडपर्म' को सीधे कॉल करने से थोड़ा धीमा होना चाहिए। – Jonas
फिक्स्ड, धन्यवाद जोनास। – KnowledgeBone
बड़े डेटासेट के लिए, आप कस्टम Shuffle समारोह
यह डी.ई. का उपयोग करता है का उपयोग कर सकते Knuth के शफल एल्गोरिदम (फिशर-येट्स भी कहा जाता है) और प्यारा KISS यादृच्छिक संख्या जेनरेटर (जी। Marsaglia)।
answer of Jonas पढ़ने के दौरान मुझे इसे पढ़ने में थोड़ा मुश्किल लग रहा था, समझना मुश्किल था। गणित में मुझे एक समान question मिला जहां उत्तर अधिक पढ़ने योग्य, समझने में आसान है।
function ret = shuffleRow(mat)
[r c] = size(mat);
shuffledRow = randperm(r);
ret = mat(shuffledRow, :);
वास्तव में यह Jonas' answer के रूप में एक ही बात करता है: विचार Mathworks से मैं एक समारोह में लिखा है ले रहा है। लेकिन मुझे लगता है कि यह समझने में आसान, थोड़ा और अधिक पठनीय है।
संभावित डुप्लिकेट [मैं MATLAB में एन बिंदुओं से यादृच्छिक रूप से के अंक कैसे चुनूं?] (Http://stackoverflow.com/questions/1856141/how-do-i-randomly-select-k-points-from- n-points-in-matlab) – Jonas
यह चयन करने के बारे में नहीं है, यह "desorder" के बारे में है या मैट्रिक्स – cMinor
की पंक्तियों को घुमाएं वास्तव में, आप सही हैं। यह बिल्कुल वही सवाल नहीं है। नीचे मेरा जवाब देखें। – Jonas