Hi all,
I am intending to calculate average values of density(832695×1 double) according to depth indexes(832695×1 double), in order to obtain one single value of density for each 1 unit depth – elucidated by the table below.
I tried to find a solution applying the following loop; however the results have been not what I was expecting.
if depth_ind=round(depth);for i=1:1:length(dens)-8 if depth_ind(i)==depth_ind(i+8) M(i)=(dens(i)+dens(i+1)+dens(i+2)+dens(i+3)+dens(i+4)+dens(i+5)+dens(i+6)+dens(i+7)+dens(i+8))/9; elseif depth_ind(i)==depth_ind(i+7) M(i)=(dens(i)+dens(i+1)+dens(i+2)+dens(i+3)+dens(i+4)+dens(i+5)+dens(i+6)+dens(i+7))/8; elseif depth_ind(i)==depth_ind(i+6) M(i)=(dens(i)+dens(i+1)+dens(i+2)+dens(i+3)+dens(i+4)+dens(i+5)+dens(i+6))/7; elseif depth_ind(i)==depth_ind(i+5) M(i)=(dens(i)+dens(i+1)+dens(i+2)+dens(i+3)+dens(i+4)+dens(i+5))/6; elseif depth_ind(i)==depth_ind(i+4) M(i)=(dens(i)+dens(i+1)+dens(i+2)+dens(i+3)+dens(i+4))/5; elseif depth_ind(i)==depth_ind(i+3) M(i)=(dens(i)+dens(i+1)+dens(i+2)+dens(i+3))/4; elseif depth_ind(i)==depth_ind(i+2) M(i)=(dens(i)+dens(i+1)+dens(i+2))/3; elseif depth_ind(i)==depth_ind(i+1) M(i)=(dens(i)+dens(i+1))/2; else M(i)=dens(i); endend
How could I do that properly?
Thank you for your time,
Best Answer