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

2 次查看(过去 30 天)
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!!

采纳的回答

Mischa Kim
Mischa Kim 2016-9-18
编辑:Mischa Kim 2016-9-18
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 个评论
Nitinkumar Ambekar
Nitinkumar Ambekar 2016-9-18
This worked! But I thought I could plot this X variable, but failed. How can I show this X variable as 3D view?

请先登录,再进行评论。

更多回答(0 个)

Community Treasure Hunt

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

Start Hunting!

Translated by