how to add colmun to vector
Show older comments
hello how can i add to my colmn vector using for loop ?
for exmaple i have this vector [0;0] and i want it to grow by one and keep adating like this for exmaple [0 1;0 1] and then [0 1 2; 0 1 2] and then [0 1 2 3; 0 1 2 3 ] and so on
1 Comment
Guillaume
on 4 Jan 2018
Note that growing arrays in a loop is not recommended. It adversely affects performance. Preallocation and indexing is recommended instead.
Answers (3)
Torsten
on 4 Jan 2018
0 votes
help horzcat
Best wishes
Torsten.
4 Comments
tomer polsky
on 4 Jan 2018
mat = [0;0];
id = ones(2,1);
n = 4;
for i=1:n
mat = horzcat(mat,i*id);
end
Best wishes
Torsten.
tomer polsky
on 4 Jan 2018
Torsten
on 4 Jan 2018
mat = [mat,i*id];
Best wishes
Torsten.
tomer polsky
on 4 Jan 2018
Edited: Guillaume
on 4 Jan 2018
1 Comment
Guillaume
on 4 Jan 2018
Torsten's way may be too complicated but it certainly performs better than the above. In particular, in the first step of the loop, the above replaces
x = [0;0]
by
x = [1;1]
The next steps of the loop do indeed grow x (not recommended) so the end result is:
x = [1 2 3 4 5; 1 2 3 4 5]
not
x = [0 1 2 3 4;0 1 2 3 4] %or maybe [0 1 2 3 4 5;0 1 2 3 4 5]
as was requested
Guillaume
on 4 Jan 2018
numsteps = 5; %and not using hardcoded ends for loops
x = zeros(2, numsteps);
for i = 1:numsteps
x(:, i) = i-1;
end
Categories
Find more on Programming in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!