Is it possible to add row vectors into a matrix with a for loop?
26 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I wonder if it's possible to add rows of a matrix one at a time with a for loop? Example, if i initialize a blank matrix:
mat = [0 0 0];
and i have some dummy samples:
sample1 = [1 2 3];
sample2 = [4 5 6];
and i want to do something like:
for i=1:2
mat(i,:) = sample1;
end
so i would get:
mat = [1 2 3
4 5 6]
as the output. The idea is that what if i can't predefine the size of the matrix beforehand and that I'm not entirely sure how many sample will be there until the process ends? Is it possible in matlab?
0 commentaires
Réponse acceptée
Chris
le 19 Août 2019
Modifié(e) : Chris
le 19 Août 2019
A loop is not needed for your simple demo
>> mat = [sample1; sample2]
mat =
1 2 3
4 5 6
But yes you can in general append to existing matrixies, it is best to preallocate when you can.
>> aa = [];
>> for ii = 1:5
aa(:,ii) = rand(3,1);
end
>> aa
aa =
0.90579 0.63236 0.54688 0.15761 0.48538
0.12699 0.09754 0.95751 0.97059 0.80028
0.91338 0.2785 0.96489 0.95717 0.14189
Note you have to define aa first. Also you need to append with consistent row/column lengths.
Edit: to prevent some future problems you might want to read:
0 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Logical dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!