how to increase the rows of an array in each loop?
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Dear all, How to increase the elemnts of a multi dimentional array in each loop ? for example at first A=[], the next loop it will be A=[2 3 5 7] the third A= [ 2 3 5 7; 3 5 3 1 ] and so on. the colomn of A is attributes which is application-dependent.(I preferably want to use : to show all colomns)
Thanks
0 Kommentare
Antworten (3)
Jan
am 25 Feb. 2012
A = [];
for i = 1:5
A = cat(1, A, rand(1, 4));
% or:
% A = [A; rand(1, 4)];
end
But consider, that this is not efficient, because Matlab has to reserve the memory for the matrix in each iteration again and copy the former values. Look for "pre-allocation" in this forum to see better methods.
0 Kommentare
Dmitry Mittov
am 13 Mär. 2015
sz = [5 4];
cell_A = arrayfun(@(i) rand(sz(2),1), 1:sz(1), 'UniformOutput', false);
A = cell2mat(cell_A)';
In my case I had vector X and wanted to get the matrix of [X; X .^ 2; X .^3; ... X .^ n]'. Not sure that works effective (in case of memory consumption), but looks so functional.
0 Kommentare
Siehe auch
Kategorien
Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!