I have a 3D matrix named SM of order 17x10x181. I need to extract a 2D matrix from SM of order 10x181. What should be the command?

 採用された回答

Walter Roberson
Walter Roberson 2018 年 2 月 26 日

8 投票

squeeze(SM(5,:,:))
For example. Without the squeeze it would be a 1 x 10 x 181 and the squeeze makes it 10 x 181

2 件のコメント

onur erdem korkmaz
onur erdem korkmaz 2018 年 6 月 20 日
Thank you for your answer. I want to ask an additional question. How do I add two matrices (10x81 add to another 10x81 in 17x10x81) with no for loop. (10x81 + 10x81 = 10x162)
Walter Roberson
Walter Roberson 2018 年 6 月 20 日
[squeeze(SM(I, :, :), squeeze(SM(J,:,:))]
or
reshape( permute(SM([I, J], :, :), [2 3 1]), size(SM,2), [] )
Here [I, J] could be replaced by a vector of values to end up with a 10 x (81*n) array.

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

その他の回答 (1 件)

KL
KL 2018 年 2 月 26 日
編集済み: KL 2018 年 2 月 26 日

1 投票

use squeeze,
a = squeeze(yourmatrix(1,:,:))
first row from all pages. I suggest reading the doc page of squeeze.

カテゴリ

ヘルプ センター および File Exchange で Multidimensional Arrays についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by