Extracting a 2 dimensional array from a 3 dimensional matrix.

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?

 采纳的回答

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 个评论

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)
[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 个)

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

类别

帮助中心File Exchange 中查找有关 Matrix Indexing 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by