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

Categories

Find more on Programming in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!