You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: mat2cell2.m
    path of file: ./repos/MCITF/Code/MCITF/EdgeBox/piotr_toolbox/toolbox/matlab
    
    the code of the file until where you have to start completion: function C = mat2cell2( X, parts )
% Break matrix up into a cell array of same sized matrices.
%
% Useful wrapper for matlab function mat2cell.  Instead of specifying
% locations along each dimension at which to split the matrix, this
% function takes the number of parts along each dimension to break X into.

    
function C = mat2cell2( X, parts )
% Break matrix up into a cell array of same sized matrices.
%
% Useful wrapper for matlab function mat2cell.  Instead of specifying
% locations along each dimension at which to split the matrix, this
% function takes the number of parts along each dimension to break X into.
% That is if X is d1xd2x...xdk and parts=[p1 p2 ... pk]; then X is split
% into p1*p2*...*pk matricies of dimension d1/p1 x d2/p2 x ... x dk/pk. If
% di/pi is not an integer, floor(di/pi) is used.  Leftover chunks of X are
% discarded. Using a scalar p for parts is equivalent to using [p p ... p].
%
% So for example if X is 10*16, mat2cell2( X, [2 3] ) breaks X into 2*3
% parts, each of size 5x5, and the last column of X is discarded.
%
% USAGE
%  C = mat2cell2( X, parts )
%
% INPUTS
%  X       - matrix to split
%  parts   - see above
%
% OUTPUTS
%  C       - cell array adjacent submatrices of X
%
% EXAMPLE
%  A=rand(6,10); B = mat2cell2(A,[3 3]),
%
% See also MAT2CELL, CELL2ARRAY, CELL2MAT
%
% Piotr's Computer Vision Matlab Toolbox      Version 3.02
% Copyright 2014 Piotr Dollar.  [pdollar-at-gmail.com]
% Licensed under the Simplified BSD License [see external/bsd.txt]

siz = size(X); nd = ndims(X);
if(length(parts)>nd && all(parts(nd+1:end