2010-03-06 17 views
6

मेरे पास MATLAB में 45x2 सेल है, पहले स्तंभ के साथ युगल के मनमाने ढंग से आकार के मैट्रिक्स के साथ।सेल सरणी में यूनिक्स की पहचान

इनमें से कुछ matrices दोहराए जाते हैं, जबकि अन्य नहीं हैं। मैं केवल अद्वितीय मैट्रिक्स को छीनने का प्रयास कर रहा हूं (लेकिन दोहराने की संख्या रिकॉर्ड करना), और दूसरा कॉलम जैसा है।

मैंने कई चीजों (टैबलेट, हिस्ट एट अल) की कोशिश की है लेकिन वे सभी सेल संरचना (मुझे लगता है) के कारण विफल हो जाते हैं। यह कैसे करने के बारे में कोई होगा, उनमें से प्रत्येक के माध्यम से अलग-अलग लूपिंग से कम?

उत्तर

11

आप तार करने के लिए अपने मैट्रिक्स परिवर्तित करते हैं, तो आप उन पर अद्वितीय चला सकते हैं:

%# create a sample cell array 
mc = {magic(3);magic(4);magic(4);magic(5);magic(3);magic(4)} 

%# convert to strings 
mcs = cellfun(@(x)(mat2str(x)),mc,'uniformoutput',false); 

%# run unique 
[uniqueCells,idxOfUnique,idxYouWant] = unique(mcs); 
+0

देखा! बहुत धन्यवाद! – malangi

+0

ध्यान दें कि दूसरी पंक्ति को 'mcs = cellfun (@ mat2str, mc,' UniformOutput ', false) के लिए सरलीकृत किया जा सकता है; ' –

संबंधित मुद्दे