Storing output of for loop on a matrix

조회 수: 1 (최근 30일)
Catarina
Catarina 2014년 12월 4일
댓글: Catarina 2014년 12월 4일
Hello! I'm new to Matlab and I'm having difficulties with a for loop. So I have a matrix with 3453 rows which correspond to different observations of interest rates. The columns (30) are their maturities. I have used a for loop to take each of these rows of the matrix and calculate what I need (which involves transforming that interest rate row into a cash flow matrix of 30x30) but the problem is I can't seem to be able to then store the output of all the 3453 observations in a new matrix? It only stores the output of the last observation.
Here is what I have:
s=length(swaps);
m=30;
CFlast = eye(30,30);
for t = 1:s
cashflows = repmat(swaps(t,:),30,1);
CF = cashflows + CFlast;
for i = 1:30
for j = 1:30
if i>j
CF(i,j) = 0;
end
end
end
CF = transpose(CF);
discount = zeros(m,s);
discount = CF\ones(30,1);
end
I've seen previous posters say that in these cases an index should be added - like discount(t) = ... - but when I do that it tells me the matrix dimensions do not match. Can someone please help me? Thank you for taking the time to read and reply!! :)

채택된 답변

Thorsten
Thorsten 2014년 12월 4일
편집: Thorsten 2014년 12월 4일
discount(:,:,t) = CF\ones(30,1);
  댓글 수: 1
Catarina
Catarina 2014년 12월 4일
Thank you! You are a life saver! I adjusted this to discount(:,t) and it works perfectly!

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by