Combining For Loop outputs into a Matrix
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi, I'm relatively new to Matlab. This is my code:
b = 0:3;
for q = 0:10:20
XY = (40 + 2*q) + cosd(b)
end
And the output on the command window would be:
XY =
41.0000 40.9998 40.9994 40.9986
XY =
61.0000 60.9998 60.9994 60.9986
XY =
81.0000 80.9998 80.9994 80.9986
I'm struggling to combine the outputs into one matrix like this:
XY =
41.0000 40.9998 40.9994 40.9986
61.0000 60.9998 60.9994 60.9986
81.0000 80.9998 80.9994 80.9986
Suggestions/hints would be much appreciated, thanks!
0 commentaires
Réponse acceptée
dpb
le 27 Nov 2017
With a loop, you just index...
b = 0:3;
XY=zeros(3,length(b)); % preallocate the output array
irow=0; % row counter
for q = 0:10:20
irow=irow+1; % increment counter
XY(irow,:) = (40 + 2*q) + cosd(b);
end
BUT, you "don't need no steenkin' loops!" with Matlab; that's the power of the language with the vectorized functions--
> [Q,B]=meshgrid(q,b); % generate the grid of points in bot variables
>> XY = [(40 + 2*Q) + cosd(B)].'
XY =
41.0000 40.9998 40.9994 40.9986
61.0000 60.9998 60.9994 60.9986
81.0000 80.9998 80.9994 80.9986
>>
Plus de réponses (1)
Voir également
Catégories
En savoir plus sur Creating and Concatenating Matrices 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!