2013-02-23 1 views
0

J'ai besoin d'éléments de la dernière cellule (disons k-th) ne se produisant pas dans la cellule avant c'est-à-dire (k-1) ème cellule où k = 1,2, ..., p. Un exemple, k = 2, r = 2^(k + 2) +2, n = 2^(k) +1;Matlab manipulation de matrice de cellules

for i=1:k 
    dt = 1:2^i:n; 
    for j=1:2^(k-i)+1 
     cd(j,:)= dt+ r*(j-1); 
    end 
    dd{i}=cd; 
    clear cd 
end   

dd {1} = [1 3 5; 11 13 15; 21 23 25]
dd {2} = [1 5; 21 25]

Je veux toutes les entrées qui se produisent dans dd {2} retirés de dd {1} c.-à-

dd {1} = [3 11 13 15 23].
dd {2} = [1 5; 21 25]

+0

Cela ne semble pas avoir quoi que ce soit à faire avec des réseaux de cellules. Vous voulez que les éléments apparaissant dans une liste soient supprimés d'une liste? En outre, vous devriez finir d'écrire la question avant de poster. C'était complètement inintelligible avant votre dernière édition. – oseiskar

+0

@oseiskar; oui, j'admets ... la syntaxe pour le formatage du code m'a fait commettre cette erreur (c'est ma première fois). A la question, je veux supprimer les éléments récurrents. J'ai utilisé les tableaux de cellules car dd avait des tailles différentes. Néanmoins, vous avez raison. – Kwesi

Répondre

0

Je pense que vous pouvez utiliser setdiff pour atteindre votre objectif (différence de deux tableaux):

setdiff([1,2,3,4,5],[3,4]) 

ans = 

    1  2  5 
+0

@oseikar, merci..je connais la commande 'setdiff'. Je ne l'ai pas trouvé vraiment utile surtout si k est grand.Cela signifiera comparer beaucoup de cellules. – Kwesi

Questions connexes