merging column vectors from the loop in to a single matrix
    조회 수: 6 (최근 30일)
  
       이전 댓글 표시
    
Every iteration my algorithm gives me a column vector and I want to form a new matrix composed of these column vectors together sequentially ( for example, the third column vector from the iteration will be the third column in the newly formed matrix). I will be thankful if anyone suggest me how to write a loop which can do so.
Abex
댓글 수: 0
답변 (2개)
  Matt Tearle
    
 2012년 1월 13일
        % preallocate space
x = zeros(m,n);
% iterate <=> loop over columns
for k = 1:n
   y = ... % make vector here
   x(:,k) = y;  % store y as kth column of x
end
This is assuming you know how many iterations you will have. If not, you may suffer some performance degradation, but:
x = [];
while ...
   y = ...
   x = [x,y];
end
댓글 수: 0
  Michael
      
 2012년 1월 13일
        Try something like:
matrix = zeros(rows, columns); % preallocate your matrix
for i = 1:columns
    column = [your code here generates a 1 x rows matrix];
    matrix(:,i) = column;
end
I think I got everything the right way around. The second line inside the loop saves the current column as the i^th column in the matrix. The first line should help for speed if you have many columns.
댓글 수: 0
참고 항목
카테고리
				Help Center 및 File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


