필터 지우기
필터 지우기

How to store vectors from each for loop in a matrix

조회 수: 6 (최근 30일)
Mike Mierlo van
Mike Mierlo van 2019년 10월 9일
편집: meghannmarie 2019년 10월 9일
Hi I have a for loop. The result of every iteration is a rowvector. I want all rowvectors of the for loop stored as one matrix. Each row is the result of one iteration.
Simplified example:
if true
X= 1:0.1:2;
for i = 1:length(X)
A=4
B= 1:5
Y= A.*X(i)+B
end
end
The end result shoud be an 11 x 5 matrix. Indexing will give errors, so will starting with an empty array.
  댓글 수: 4
Stephen23
Stephen23 2019년 10월 9일
편집: Stephen23 2019년 10월 9일
You do not need a loop, just
>> A*X(:) + B % for MATLAB >= R2016b
Or for earlier versions use bsxfun:
>> bsxfun(@plus,A*X(:),B)
ans =
5.0000 6.0000 7.0000 8.0000 9.0000
5.4000 6.4000 7.4000 8.4000 9.4000
5.8000 6.8000 7.8000 8.8000 9.8000
6.2000 7.2000 8.2000 9.2000 10.2000
6.6000 7.6000 8.6000 9.6000 10.6000
7.0000 8.0000 9.0000 10.0000 11.0000
7.4000 8.4000 9.4000 10.4000 11.4000
7.8000 8.8000 9.8000 10.8000 11.8000
8.2000 9.2000 10.2000 11.2000 12.2000
8.6000 9.6000 10.6000 11.6000 12.6000
9.0000 10.0000 11.0000 12.0000 13.0000
Mike Mierlo van
Mike Mierlo van 2019년 10월 9일
For the simplified version this is OK. But in my sophisticated version is A and B an array too, so I think in that case an loop fits best.

댓글을 달려면 로그인하십시오.

채택된 답변

meghannmarie
meghannmarie 2019년 10월 9일
편집: meghannmarie 2019년 10월 9일
if true
X= 1:0.1:2;
A = 4;
B = 1:5;
Y = nan(length(X),length(B));
for i = 1:length(X)
Y(i,:) = A.*X(i)+B;
end
end

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by