le fractionnement d'une Matrice en vecteurs colonnes et de les stocker dans un tableau

Ma question est en deux parties:

  1. Split une matrice donnée dans ses colonnes
  2. Ces colonnes doivent être stockées dans un tableau

par exemple,

A = [1 3 5 
     3 5 7
     4 5 7
     6 8 9]

Maintenant, je sais que la solution de la première partie:

les colonnes sont obtenus via
tempCol = A(:,iter), where iter = 1:end

Qui concerne la seconde partie du problème, je voudrais avoir (quelque chose comme ça, peut-être une autre indexation dans arraySplit tableau), mais un plein de colonnes de A doit être stocké à un indice unique dans splitArray:

arraySplit(1) = A(:,1)
arraySplit(2) = A(:,2)

et ainsi de suite...

pour l'exemple de la matrice A,

arraySplit(1) devrait me donner [ 1 3 4 6 ]'

arraySplit(2) devrait me donner [ 3 5 5 8 ]'

J'obtiens l'erreur suivante, quand j'ai essayé d'affecter le vecteur colonne de mon tableau.

In an assignment  A(I) = B, the number of elements in B and I must be the same.

Je suis en train de faire la répartition et l'accès de arraySplit à tort, s'il vous plaît aidez-moi ...

  • Une matrice est déjà un tableau de vecteurs, pourquoi avez-vous besoin de cette inutile arraySplit sophistication?
  • Ce qui frappe habituellement les nouveaux utilisateurs de matlab est l'absence totale de pointeurs: voir ceci et ceci des questions. Outre les tableaux de cellules qui ne sont pas utile à mon humble avis, vous avez à vivre sans les pointeurs et l'adapter à votre style de codage à cette contrainte. En fait ce que vous demandez est un tableau de pointeurs de sorte que A(i,j)==arraySplit(j)(i) mais ce n'est pas possible avec () parenthèses.
  • Je trouve chaque partie de votre commentaire mal: 1) Pas tous les "nouveaux utilisateurs de MATLAB" proviennent d'un C en arrière-plan, donc en disant qu'ils n'ont pas la fonctionnalité d'emplacements mémoire et les pointeurs n'est pas nécessairement vrai. 2) des cellules de tableaux sont TRÈS utiles pour contenir des données de type de variable comme une collection, tels que des nombres et des chaînes, ou des vecteurs de longueur différente. 3) Pourquoi êtes-vous certain que l'OP veut pointeurs plutôt que d'une copie de ces vecteurs?
  • désolé pour la cause de la désapprobation de vous. Fondamentalement, vous avez raison, mon bref commentaire suppose que lorsque l'OP demande "à une colonne entière de A doit être stocké à un indice unique dans splitArray", il demande un C-like tableau de tableaux. Comme quoi ce matrices de cellules, je l'aurais écrit qu'ils ne sont pas si utiles que le pointeur de substituts. Le sens de mon commentaire était simplement de faire connaître l'OP que dans MATLAB le modèle de données pour les matrices (et N-dimension tableau) est très différente de C et de numpy.
  • Je ne voulais pas agressif, mais il est important de noter cette information afin de ne pas induire en erreur l'OP.
InformationsquelleAutor prashant | 2012-09-04