I have a array of 61 number, i want to take mean of 1st and 17th number, then 2nd and 18th number and then want to put this mean values in a array?
Show older comments
I don't want to use loop here.
Answers (1)
KSSV
on 29 Jul 2021
A = rand(1,61) ;
idx = [(1:46)' (16:61)'] ; % get indices
iwant = mean(A(idx),2)
7 Comments
Subhodh Sharma
on 29 Jul 2021
KSSV
on 29 Jul 2021
Tell me the dimensions of 3D matrix. What you expect from it.
KSSV
on 29 Jul 2021
So you want mean of 1st and17th matrix, so you expect a 3D matrix of size 180*270..is it?
Subhodh Sharma
on 29 Jul 2021
KSSV
on 29 Jul 2021
So output will be of size 180*1*3d..
KSSV
on 29 Jul 2021
A = rand(180,270,61) ;
idx = [(1:46)' (16:61)'] ;
B = zeros(180,270,46,2) ;
B(:,:,:,1) = A(:,:,idx(:,1)) ;
B(:,:,:,2) = A(:,:,idx(:,2)) ;
Check and then use....confirm the result with a loop.
Subhodh Sharma
on 29 Jul 2021
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!