2012-10-14 13 views
6

J'ai matrice (vecteur) r =[2 4] et report matrice de taille 50 * 2. Je veux mettre r dans la rangée 1 de report matrice. Quand je lanceAffectation d'un vecteur à une ligne de matrice dans MATLAB

with report(1)=r; 

retourne cette erreur Matlab:

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

Comment puis-je résoudre ce problème?

Répondre

10
report(1,:)=r 

Vous devez spécifier les colonnes aussi bien. Sinon, report(1) est un scalaire, r est un vecteur, et vous obtenez une erreur.

+0

Cette réponse OVERWRITE les valeurs actuelles de la ligne 1 dans le rapport (1, :), pour un moyen d'ADD r AVANT les lignes existantes dans le rapport, vous pouvez utiliser la réponse de user1319936. – Rune

4

À moins que je manque quelque chose que vous voulez simplement avoir un vecteur comme la première rangée d'une matrice:

report = [r;report]

+0

La réponse de @angainor écrase les valeurs actuelles de la ligne 1 du rapport (1, :), pour un moyen d'AJOUTER r AVANT les lignes existantes dans le rapport, vous pouvez utiliser cette réponse. Veuillez noter que cela prend beaucoup plus de temps que la réponse d'angainor à mesure que la table grossit, juste au cas où vous voudriez ajouter des milliers de lignes de cette façon! – Rune

Questions connexes