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