From f7f525cc0b178af15b2a2060a27e5cdfe95819ab Mon Sep 17 00:00:00 2001
From: Elian Dib <elian.dib@inria.fr>
Date: Wed, 24 Apr 2019 13:58:49 +0200
Subject: [PATCH] Changed data dimensions in split and join

---
 join.m  |  6 +-----
 split.m | 22 ++++++++++++----------
 2 files changed, 13 insertions(+), 15 deletions(-)

diff --git a/join.m b/join.m
index aaff97d..555da8d 100644
--- a/join.m
+++ b/join.m
@@ -6,11 +6,7 @@ function data = join(slices,varargin)
 %   data = join(slices,dimsToSplit,squeezeGrid,squeezeSlices)
 
 validSplitsFcn = @(x) isnumeric(x)||islogical(x);
-
-gridSplits   = true ([1,ndims(slices   )]);
-slicesSplits = false([1,ndims(slices{1})]);
-
-defaultSplits = [gridSplits,slicesSplits];
+defaultSplits = [0,0,0,1,1];
 
 % Parse input arguments
 p = inputParser;
diff --git a/split.m b/split.m
index 3b71f35..300d770 100644
--- a/split.m
+++ b/split.m
@@ -5,13 +5,8 @@ function slices = split(data,varargin)
 %   slices = split(data,dimsToSplit,squeezeGrid)
 %   slices = split(data,dimsToSplit,squeezeGrid,squeezeSlices)
 
-dimsSize = size(data);
-numDims = ndims(data);
-
-defaultSplits = false(1,numDims);
-defaultSplits(1:2) = true;
-
 validSplitsFcn = @(x) isnumeric(x)||islogical(x);
+defaultSplits = [0,0,0,1,1];
 
 % Parse input arguments
 p = inputParser;
@@ -24,25 +19,32 @@ dimsToSplit = logical(p.Results.dimsToSplit);
 squeezeGrid   = p.Results.squeezeGrid;
 squeezeSlices = p.Results.squeezeSlices;
 
+% Input size and dimensions
+sz = size(data);
+sz(end+1:5) = 1;
+numDims = numel(sz);
+
 % Infer split chunks sizes
-numSplits = dimsSize;
+numSplits = sz;
 numSplits(~dimsToSplit) = 1;
 numSplits(numDims+1:end) = [];
 
 dimDists = arrayfun(@(nsplit,sz) repelem(sz/nsplit,nsplit),...
-    numSplits,dimsSize,...
+    numSplits,sz,...
     'UniformOutput',false);
 
 % Split input data into slices
 slices = mat2cell(data,dimDists{:});
 
 if squeezeGrid
-    gridSize = dimsSize(dimsToSplit);
+    gridSize = sz(dimsToSplit);
+    gridSize(end+1:2) = 1;
     slices = reshape(slices,gridSize);
 end
 
 if squeezeSlices
-    SliceSize = dimsSize(~dimsToSplit); SliceSize(end+1:2)=1;
+    SliceSize = sz(~dimsToSplit);
+    SliceSize(end+1:2) = 1;
     slices = cellfun(@(s) reshape(s,SliceSize),slices,'UniformOutput',false);
 end
 end
\ No newline at end of file
-- 
GitLab