I have a 6000x9424x50 matrix and want to convert it into 6000x9424x10 and 6000x9424x20?? I meant to to split 50 bands to 10 or 20 bands individually?

1 回表示 (過去 30 日間)
band1(6000:9424;10) will this work?

採用された回答

David Sanchez
David Sanchez 2016 年 2 月 22 日
your_matrix = rand(6000,9424,50); % random matrix
M_10 = your_matrix(:,:,1:10); % 10 bands
M_20 = your_matrix(:,:,11:30); % 20 next bands

その他の回答 (1 件)

Stephen23
Stephen23 2016 年 2 月 22 日
編集済み: Stephen23 2016 年 2 月 22 日
For the most generalized solution use mat2cell:
>> X = rand(600,942,50); % fake data
>> C = mat2cell(X,size(X,1),size(X,2),[10,10,20,10]) % split matrix
>> size(C{1}) % size of the first submatrix
ans =
600 942 10
>> size(C{3}) % size of the third submatrix
ans =
600 942 20
Note:
  • the submatrices are accessed using cell array indexing into C: e.g. C{1}, C{2}, etc.
  • the dimension arguments must sum to equal the size of that dimension, e.g. sum([10,10,20,10])==50.
  2 件のコメント
pranav
pranav 2016 年 3 月 8 日
編集済み: pranav 2016 年 3 月 8 日
Thank You. The image has 50 bands. But i want to seperate it to 1-10 1-20 1-30 1-40 bands. Can you help me.
Stephen23
Stephen23 2016 年 3 月 8 日
編集済み: Stephen23 2016 年 3 月 8 日
It is not clear what " i want to seperate it to 1-10 1-20 1-30 1-40 bands" means. How do you intend to split 50 into 10 + 20 + 30 + 40 ? Do they overlap or are they separate cases?

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

カテゴリ

Help Center および File ExchangeCorrelation and Convolution についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by