How do I create and store data into a new row after every loop?
조회 수: 6 (최근 30일)
이전 댓글 표시
For example:
I am trying to update the old variable matrix but I am getting an error
f = [1 2 3 4];
a = [1 2 3 4 5 6];
old = 0;
for i = 1:length(a)
new = f.*a(i);
old(:,i) = new;
end
I want an old matrix with these values
{1 2 3 4;2 4 6 8;3 6 9 12;4 8 12 16;5 10 15 20; 6 12 18 24}
thank you
댓글 수: 0
채택된 답변
Walter Roberson
2017년 12월 23일
To deliberately grow the old matrix, either initialize
old = zeros(length(f),0);
or else do not initialize old at all. With what you are doing now, you are initializing old as having only one row, but then trying to write multiple rows to it.
More efficient would be to initialize the entire matrix
old = zeros(length(f), length(a));
This would not grow the matrix as you went: it would start it out as the proper size.
댓글 수: 3
Walter Roberson
2017년 12월 23일
To get that error, you must be using a very old MATLAB, such as from 2009.
Try
old(:,i) = new .';
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!