Reshaping a matrix using a loop or any function inbuilt.

Hello, Does anyone know how to reshape a m*n matrix into m*1*n matrix using loops or any other function. I would definitely appriciate if both the methods are illustrated.

 Réponse acceptée

Jan
Jan le 21 Mar 2013
Modifié(e) : Jan le 21 Mar 2013
x = rand(3,4);
y = reshape(x, 3, 1, 4);
size(y)
This is such efficient, that it is hard to dare to do this in a loop. Therefore I assume, that the problem is a homework question and to avoid cheating, I ask you to post, what you have done so far to solve it with a loop. Then ask a specific question to the occurring problems.

2 commentaires

No its is not a homework problem. It is a code i have been trying to modify to fit into my use.
I have a code which computes J matrix which is m*n and now i would want to change it into 3D m*1*n so that I can improve the quality of my image reconxstruction.

Connectez-vous pour commenter.

Plus de réponses (1)

Wouter
Wouter le 21 Mar 2013

0 votes

a suggestion: permute(matrix,[1 3 2])
this switches dimension 2 and 3 and effectively changes the size of your matrix

1 commentaire

Jan
Jan le 21 Mar 2013
This uses the clearly documented but confusing fact, that in Matlab missing trailing dimensions are assume to be 1 by default.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Mathematics dans Centre d'aide et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by