[wrap, unwrap] = arg_wrappers(ones(2,3), ones(2,1)); X = wrap([1,4,5;2,7,8], [2;3])'; assert(isequal(X,[1 2 4 7 5 8 2 3])) 'OK' [a,b] = celldeal(unwrap(X)); assert(isequal(a, [1,4,5;2,7,8])); 'OK' assert(isequal(b, [2;3])); 'OK' clear a % Ensuring no crash if I don't ask for all the arguments (as happens with deal) a = celldeal(unwrap(X)); assert(isequal(a, [1,4,5;2,7,8])); 'OK' test_exit