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

2 Ansichten (letzte 30 Tage)
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!!

Akzeptierte Antwort

Mischa Kim
Mischa Kim am 18 Sep. 2016
Bearbeitet: Mischa Kim am 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 Kommentar
Nitinkumar Ambekar
Nitinkumar Ambekar am 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?

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by