extract submatrix from a large matrix using loop

Dear friends, I have a matrix 1140 by 330. I have to split the matrix into 60 matrices with the size of 19*330 using a for loop. does any one know how to do that?

 採用された回答

Matt J
Matt J 2016 年 7 月 18 日

0 投票

You can use MAT2TILES ( Download ). For example,
A=rand(1140,330);
C=mat2tiles(A,[19,330]);

2 件のコメント

Sophi gra
Sophi gra 2016 年 7 月 18 日
編集済み: Sophi gra 2016 年 7 月 18 日
if i want to calculate the correlation coefficient, does it calculate it seperately? I use corrcoef(C), and I got error!
Matt J
Matt J 2016 年 7 月 18 日
Yes, you can do
cellfun(@corrcoef,C,...)

サインインしてコメントする。

その他の回答 (2 件)

Andrei Bobrov
Andrei Bobrov 2016 年 7 月 18 日

0 投票

A=rand(1140,330);
out = permute(reshape(A',size(A,2),60,[]),[2,1,3]);
Guillaume
Guillaume 2016 年 7 月 18 日

0 投票

m = rand(1140, 330); %demo matrix
splitm = mat2cell(m, ones(1, 60) * 19, 330)

カテゴリ

ヘルプ センター および File ExchangeCreating and Concatenating Matrices についてさらに検索

質問済み:

2016 年 7 月 18 日

コメント済み:

2016 年 7 月 18 日

Community Treasure Hunt

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

Start Hunting!

Translated by