how to add colmun to vector

1 次查看(过去 30 天)
tomer polsky
tomer polsky 2018-1-4
回答: Guillaume 2018-1-4
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 个评论
Guillaume
Guillaume 2018-1-4
Note that growing arrays in a loop is not recommended. It adversely affects performance. Preallocation and indexing is recommended instead.

请先登录,再进行评论。

回答(3 个)

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

请先登录,再进行评论。


tomer polsky
tomer polsky 2018-1-4
编辑:Guillaume 2018-1-4
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 个评论
Guillaume
Guillaume 2018-1-4
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
Guillaume 2018-1-4
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

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by