Convert matrix size from 1xmxn to mxn

76 views (last 30 days)
I want to compare two matrices. One's size is mxn and the other matrix size 1xmxn. How can I convert 1xmxn to mxn??

Accepted Answer

Andrei Bobrov
Andrei Bobrov on 2 Jul 2014
Edited: Andrei Bobrov on 2 Jul 2014
Z = randi(250,1,3,4); % your matrix
one way
out = squeeze(Z)';
other
out = permute(Z,[3 2 1]);
or
out = reshape(Z,size(Z,2),[])';
  1 Comment
Erik Kruit
Erik Kruit on 13 Oct 2020
Edited: Erik Kruit on 13 Oct 2020
Googled really long on this! Thanks!
size(A)=1xMxN matrix. Unable to then imagsc(A(jpos,:,:))
error(using image Color data must be an m-by-n-by-3 or m-by-n matrix.)
Solved by:
Qi=squeeze(A(jpos,:,:));
imagesc(Qi);
% Squeeze used to convert the resulting 1xMxN matrix into a MxN matrix

Sign in to comment.

More Answers (1)

Piyush kant
Piyush kant on 9 Apr 2019
Just adding some context to previous answer by Andrei Bobrov. Basic idea is to convert 1 x m x n matrix into m x n x 1 as matlab omits last dimension if it is 1. Therefore the method i prefer is:
NewMat=sqeeze(Z)';
Whereas other two functions does the same thing.

Tags

Community Treasure Hunt

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

Start Hunting!