MATLAB Answers


Reshaping a matrix using a loop or any function inbuilt.

Asked by maharaj
on 21 Mar 2013

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.



2 Answers

Answer by Jan Simon
on 21 Mar 2013
Edited by Jan Simon
on 21 Mar 2013
 Accepted answer

x = rand(3,4);
y = reshape(x, 3, 1, 4);

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.


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.

Answer by Wouter
on 21 Mar 2013

a suggestion: permute(matrix,[1 3 2])

this switches dimension 2 and 3 and effectively changes the size of your matrix

  1 Comment

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

Join the 15-year community celebration.

Play games and win prizes!

Learn more
Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Academy

New to MATLAB?

Learn MATLAB today!