Comment dans matlab je peux interactivement ajouter une matrice avec des lignes?
Par exemple, disons que j'ai une matrice vide:
m = [];
et lorsque je lance la boucle for, je reçois des lignes que je dois insérer dans la matrice.
Par exemple:
for i=1:5
row = v - x; % for example getting 1 2 3
% m.append(row)?
end
ainsi, après l'insertion, il devrait ressembler à quelque chose comme:
m = [
1 2 3
3 2 1
1 2 3
4 3 2
1 1 1
]
Dans la plupart des langages de programmation, vous pouvez simplement ajouter des lignes dans un tableau/une matrice. Mais j'ai du mal à le faire avec Matlab.
m = [m ; new_row];
dans votre boucle. Si vous connaissez déjà le nombre total de lignes, définissez m=zeros(row_num,column_num);
, puis dans votre boucle m(i,:) = new_row;
Juste utiliser
m = [m; row];
Tenez compte du fait que l’extension d’une matrice est lente, car elle implique une réallocation de la mémoire. Il est préférable de préallouer la matrice à sa taille complète,
m = NaN(numRows,numCols);
puis remplissez les valeurs de ligne à chaque itération:
m(ii,:) = row;
Aussi, il est préférable de ne pas utiliseri
comme nom de variable, car par défaut, il représente l'unité imaginaire (c'est pourquoi j'utilise ii
ici comme index d'itération).
Pour créer et ajouter une valeur à la matrice, vous pouvez le faire et créer une matrice complète comme la vôtre. Ici rangée = 5 et ensuite colonne = 3 et donc deux pour la boucle.
Mettez la valeur dans M(i, j)
location et la valeur sera insérée dans la matrice
for i=1:5
for j=1:3
M(i, j) = input('Enter a value = ')
end
fprintf('Row %d inserted successfully\n', i)
end
disp('Full Matrix is = ')
disp(M)
Si vous entrez les mêmes valeurs, le résultat sera comme le vôtre,
Full Matrix is =
1 2 3
3 2 1
1 2 3
4 3 2
1 1 1