how to add colmun to vector

3 Ansichten (letzte 30 Tage)
tomer polsky
tomer polsky am 4 Jan. 2018
Beantwortet: Guillaume am 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 Kommentar
Guillaume
Guillaume am 4 Jan. 2018
Note that growing arrays in a loop is not recommended. It adversely affects performance. Preallocation and indexing is recommended instead.

Melden Sie sich an, um zu kommentieren.

Antworten (3)

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

Melden Sie sich an, um zu kommentieren.


tomer polsky
tomer polsky am 4 Jan. 2018
Bearbeitet: Guillaume am 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 Kommentar
Guillaume
Guillaume am 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

Melden Sie sich an, um zu kommentieren.


Guillaume
Guillaume am 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

Kategorien

Mehr zu Programming finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by