How to store vectors from each for loop in a matrix
20 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Mike Mierlo van
le 9 Oct 2019
Modifié(e) : meghannmarie
le 9 Oct 2019
Hi I have a for loop. The result of every iteration is a rowvector. I want all rowvectors of the for loop stored as one matrix. Each row is the result of one iteration.
Simplified example:
if true
X= 1:0.1:2;
for i = 1:length(X)
A=4
B= 1:5
Y= A.*X(i)+B
end
end
The end result shoud be an 11 x 5 matrix. Indexing will give errors, so will starting with an empty array.
4 commentaires
Stephen23
le 9 Oct 2019
Modifié(e) : Stephen23
le 9 Oct 2019
You do not need a loop, just
>> A*X(:) + B % for MATLAB >= R2016b
Or for earlier versions use bsxfun:
>> bsxfun(@plus,A*X(:),B)
ans =
5.0000 6.0000 7.0000 8.0000 9.0000
5.4000 6.4000 7.4000 8.4000 9.4000
5.8000 6.8000 7.8000 8.8000 9.8000
6.2000 7.2000 8.2000 9.2000 10.2000
6.6000 7.6000 8.6000 9.6000 10.6000
7.0000 8.0000 9.0000 10.0000 11.0000
7.4000 8.4000 9.4000 10.4000 11.4000
7.8000 8.8000 9.8000 10.8000 11.8000
8.2000 9.2000 10.2000 11.2000 12.2000
8.6000 9.6000 10.6000 11.6000 12.6000
9.0000 10.0000 11.0000 12.0000 13.0000
Réponse acceptée
meghannmarie
le 9 Oct 2019
Modifié(e) : meghannmarie
le 9 Oct 2019
if true
X= 1:0.1:2;
A = 4;
B = 1:5;
Y = nan(length(X),length(B));
for i = 1:length(X)
Y(i,:) = A.*X(i)+B;
end
end
0 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Loops and Conditional Statements 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!