how to add colmun to vector

1 view (last 30 days)
tomer polsky
tomer polsky on 4 Jan 2018
Answered: Guillaume on 4 Jan 2018
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
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.

Sign in to comment.

Answers (3)

Torsten
Torsten on 4 Jan 2018
help horzcat
Best wishes
Torsten.
  4 Comments
tomer polsky
tomer polsky on 4 Jan 2018
thank you very much is there any other way without using horzcat command ?
Torsten
Torsten on 4 Jan 2018
mat = [mat,i*id];
Best wishes
Torsten.

Sign in to comment.


tomer polsky
tomer polsky on 4 Jan 2018
Edited: Guillaume on 4 Jan 2018
clc;
clear all;
x=[0;0]
for i=1:5
x(:,i)=i
end
your wat is too complicated ,here is the way i found
  1 Comment
Guillaume
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

Sign in to comment.


Guillaume
Guillaume on 4 Jan 2018
And the proper way is to use preallocation instead of growing the array:
numsteps = 5; %and not using hardcoded ends for loops
x = zeros(2, numsteps);
for i = 1:numsteps
x(:, i) = i-1;
end

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!