Convert matrix size from 1xmxn to mxn

84 visualizzazioni (ultimi 30 giorni)
I want to compare two matrices. One's size is mxn and the other matrix size 1xmxn. How can I convert 1xmxn to mxn??

Risposta accettata

Andrei Bobrov
Andrei Bobrov il 2 Lug 2014
Modificato: Andrei Bobrov il 2 Lug 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 Commento
Erik Kruit
Erik Kruit il 13 Ott 2020
Modificato: Erik Kruit il 13 Ott 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

Accedi per commentare.

Più risposte (1)

Piyush kant
Piyush kant il 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.

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by