How to change matrix dimensions?

Hi,
I have a question regarding a 3D matrix with portfolio returns.
I have a 10000x35x12, which is 10000 simulated return paths for 35 years and 12 months in each year. Now I want to make this a 2D matrix with dimensions 10000x420 (35x12) such that the 420 months of return are in the right order. Can somebody help me with that?
Thanks in advance!
Greetz

回答(4 个)

M - your 3D array with size < 10000,35,12 >
out = reshape(permute(M, [1 3 2]),size(M,1),[]);
[n,m,p]=size(A)
b=reshape(A,n,p*m)
idx=reshape(1:p*m,m,p)'
out=b(:,idx(:))
Rens
Rens 2012-12-6

0 个投票

Thanks guys! Appreciate it! All the different codes give the same return matrix so it should be alright!

类别

帮助中心File Exchange 中查找有关 Resizing and Reshaping Matrices 的更多信息

提问:

2012-12-6

Community Treasure Hunt

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

Start Hunting!

Translated by