array to cell array

2 views (last 30 days)
Mingde
Mingde on 18 Jul 2022
Commented: Image Analyst on 19 Jul 2022
Hello
I have many of array.
do you have any function for instead this CY.
CY = [cy(:,:,1) cy(:,:,2) cy(:,:,3) cy(:,:,4) cy(:,:,5) cy(:,:,6) cy(:,:,7) cy(:,:,8) cy(:,:,9) cy(:,:,10) cy(:,:,11) cy(:,:,12) cy(:,:,13) cy(:,:,14) cy(:,:,15) cy(:,:,16) cy(:,:,17) cy(:,:,18) cy(:,:,19) cy(:,:,20) cy(:,:,21) cy(:,:,22) cy(:,:,23) cy(:,:,24) cy(:,:,25) cy(:,:,26) cy(:,:,27) ... cy(:,:,3000];

Accepted Answer

Hayden Raabe-Garmon
Hayden Raabe-Garmon on 18 Jul 2022
Edited: Hayden Raabe-Garmon on 18 Jul 2022
cy(:,:,1)=1
cy(:,:,2)=2
cy(:,:,3)=3
CY=squeeze(cy)'
CY =
1 2 3
  3 Comments
Mingde
Mingde on 18 Jul 2022
Thank you
Mingde
Mingde on 18 Jul 2022
Thank you. it is working.

Sign in to comment.

More Answers (1)

Image Analyst
Image Analyst on 18 Jul 2022
Trust me, you don't want a cell array. I highly doubt it. It uses way more memory and is inefficient. You want code like @Hayden Raabe-Garmon gave you
CY=squeeze(cy)'
If you think you want a cell array, give justification (so I can talk you out of it).
  3 Comments
Mingde
Mingde on 19 Jul 2022
Edited: Mingde on 19 Jul 2022
cy(:,:,1)=1
cy(:,:,2)=2
cy(:,:,3)=3
cy(:,:,4)=4
cy(:,:,5)=5
cy(:,:,6)=6
cy(:,:,7)=7
cy(:,:,8)=8
cy(:,:,9)=9
...
cy(:,:,100)=100
How Can I use loop for mean each 3 cell array?
For example
mean(A)
cy(:,:,1)=1
cy(:,:,2)=2
cy(:,:,3)=3
mean(B)
cy(:,:,4)=4
cy(:,:,5)=5
cy(:,:,6)=6
...
mean(Z)
cy(:,:,98)=98
cy(:,:,99)=99
cy(:,:,100)=100
Image Analyst
Image Analyst on 19 Jul 2022
Again, we're not using cell arrays. And I don't know what range A, B, etc. cover. Do you just want the average of every group of 3 planes/slices? Like
A = cy(:, :, 1:3);
theMean = mean(A, 'all');

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!