Combining For Loop outputs into a Matrix
5 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
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 Commenti
Risposta accettata
dpb
il 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
>>
Più risposte (1)
Vedere anche
Categorie
Scopri di più su Creating and Concatenating Matrices in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!