Storing output of for loop on a matrix

1 次查看(过去 30 天)
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