Code covered by the BSD License  

Highlights from
3D Cube Slice

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

Contact us at files@mathworks.com