diff --git a/split.m b/split.m
index 091d7afca645761c3fc0e9d28ccaf5104d8c8ee0..4896c752f61cb30987032dc067e2c5e27c3b8f37 100644
--- a/split.m
+++ b/split.m
@@ -37,10 +37,12 @@ dimDists = arrayfun(@(nsplit,sz) repelem(sz/nsplit,nsplit),...
 slices = mat2cell(data,dimDists{:});
 
 if squeezeGrid
-    slices = squeeze(slices);
+    gridSize = dimsSize(dimsToSplit);
+    slices = reshape(slices,gridSize);
 end
 
 if squeezeSlices
-    slices = cellfun(@squeeze,slices,'UniformOutput',false);
+    SliceSize = dimsSize(~dimsToSplit); SliceSize(end+1:2)=1;
+    slices = cellfun(@(s) reshape(s,SliceSize),slices,'UniformOutput',false);
 end
 end
\ No newline at end of file