2009-12-14 8 views
3

Je veux manipuler un tableau de cellules et faire en sorte que certains indices du tableau de cellules contiennent la matrice vide []. Je n'arrive pas à comprendre comment faire ceci:Comment affecter une matrice vide aux éléments d'un tableau de cellules dans MATLAB?

>> yy=num2cell(1:10) 

yy = 

    [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] 

>> yy{1:2:end}=[] 
??? The right hand side of this assignment has too few values to satisfy 
the left hand side. 
>> yy(1:2:end) = [] 

yy = 

    [2] [4] [6] [8] [10] 

Bah! Je n'arrive pas à faire ce que je veux. Je veux laisser des éléments vides dans le tableau de cellules, par ex.

[] [2] [] [4] [] [6] [] [8] [] [10] 

Des suggestions? Mon vecteur d'index peut être arbitraire, et soit sous forme d'index, soit sous forme booléenne, pas nécessairement [1 3 5 7 9].

Répondre

7

Qu'est-ce que vous pouvez faire est d'indexer le réseau de cellules (et non le contenu) à l'aide () et changer chaque cellule à une cellule vide {[]}:

yy(1:2:end) = {[]}; 

Une alternative est d'utiliser la fonction DEAL, mais il semble un un peu plus laid:

[yy{1:2:end}] = deal([]); 
+0

woohoo! gnovice revient à nouveau. nous allons devoir vous appeler "gexpert" –

+2

Je dois d'abord devenir "gintermediate". ;) – gnovice

Questions connexes