How to convert one large vector into an array of matrix?

1 view (last 30 days)
I have a result column vector `yfit` containing result for multiple images one after another, for example, for images of size 512x512 the `yfit` would contain 1 to 262144 for first image, which further can be reshape() to get 512x512 result matrix. Further, 262145 to 524289 for second image's result matrix, and so on.
How to convert `yfit` in an array of matrix? Where each matrix would be a result of an image. Such as,
x[1] => matrix of first image (512x512)
x[2] => matrix of second image (512x512)
I am not sure, but it would be like
x[1] = reshape(yfit(1:262144), 512,512);
x[1] = reshape(yfit(262144:524289), 512,512);
What I want is `X` having result of all images. Thanks!!

Accepted Answer

Mischa Kim
Mischa Kim on 18 Sep 2016
Edited: Mischa Kim on 18 Sep 2016
Nitinkumar,
yfit = 1:5*5*10; % just as an exmple: 10 5x5 images
x = reshape(yfit,[5,5,10]);
You basically convert into a 3D array. The first image is accessed through
x(:,:,1)
  1 Comment
Nitinkumar Ambekar
Nitinkumar Ambekar on 18 Sep 2016
This worked! But I thought I could plot this X variable, but failed. How can I show this X variable as 3D view?

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!