from
3D Cube Slice
by Oren Rosen Enables reading 2 dim slices of 3 dim matrix stored in MAT file
slice_index_set(dim,indx,dimx,dimy,dimz)
function slc_indx = slice_index_set(dim,indx,dimx,dimy,dimz)
switch dim
case 'x'
bm = zeros(dimy,dimz);
for y=1:dimy
bm(:,1) = 1 + dimx*(0:dimy-1)';
end
for z=2:dimz
bm(:,z) = bm(:,1) + dimx*dimy*(z-1);
end
slc_indx = bm + (indx-1);
case 'y'
bm = zeros(dimx,dimz);
for x=1:dimx
bm(:,1) = (1:dimx)';
end
for z=2:dimz
bm(:,z) = bm(:,1) + dimy*dimx*(z-1);
end
slc_indx = bm + (indx-1)*dimx;
case 'z'
bm = zeros(dimx,dimy);
bm(:) = 1:dimx*dimy;
slc_indx = bm + (indx-1)*dimx*dimy;
end