Mentions légales du service

Skip to content
Snippets Groups Projects
Commit f7f525cc authored by DIB Elian's avatar DIB Elian
Browse files

Changed data dimensions in split and join

parent 2039fdff
No related branches found
No related tags found
No related merge requests found
...@@ -6,11 +6,7 @@ function data = join(slices,varargin) ...@@ -6,11 +6,7 @@ function data = join(slices,varargin)
% data = join(slices,dimsToSplit,squeezeGrid,squeezeSlices) % data = join(slices,dimsToSplit,squeezeGrid,squeezeSlices)
validSplitsFcn = @(x) isnumeric(x)||islogical(x); validSplitsFcn = @(x) isnumeric(x)||islogical(x);
defaultSplits = [0,0,0,1,1];
gridSplits = true ([1,ndims(slices )]);
slicesSplits = false([1,ndims(slices{1})]);
defaultSplits = [gridSplits,slicesSplits];
% Parse input arguments % Parse input arguments
p = inputParser; p = inputParser;
......
...@@ -5,13 +5,8 @@ function slices = split(data,varargin) ...@@ -5,13 +5,8 @@ function slices = split(data,varargin)
% slices = split(data,dimsToSplit,squeezeGrid) % slices = split(data,dimsToSplit,squeezeGrid)
% slices = split(data,dimsToSplit,squeezeGrid,squeezeSlices) % 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); validSplitsFcn = @(x) isnumeric(x)||islogical(x);
defaultSplits = [0,0,0,1,1];
% Parse input arguments % Parse input arguments
p = inputParser; p = inputParser;
...@@ -24,25 +19,32 @@ dimsToSplit = logical(p.Results.dimsToSplit); ...@@ -24,25 +19,32 @@ dimsToSplit = logical(p.Results.dimsToSplit);
squeezeGrid = p.Results.squeezeGrid; squeezeGrid = p.Results.squeezeGrid;
squeezeSlices = p.Results.squeezeSlices; squeezeSlices = p.Results.squeezeSlices;
% Input size and dimensions
sz = size(data);
sz(end+1:5) = 1;
numDims = numel(sz);
% Infer split chunks sizes % Infer split chunks sizes
numSplits = dimsSize; numSplits = sz;
numSplits(~dimsToSplit) = 1; numSplits(~dimsToSplit) = 1;
numSplits(numDims+1:end) = []; numSplits(numDims+1:end) = [];
dimDists = arrayfun(@(nsplit,sz) repelem(sz/nsplit,nsplit),... dimDists = arrayfun(@(nsplit,sz) repelem(sz/nsplit,nsplit),...
numSplits,dimsSize,... numSplits,sz,...
'UniformOutput',false); 'UniformOutput',false);
% Split input data into slices % Split input data into slices
slices = mat2cell(data,dimDists{:}); slices = mat2cell(data,dimDists{:});
if squeezeGrid if squeezeGrid
gridSize = dimsSize(dimsToSplit); gridSize = sz(dimsToSplit);
gridSize(end+1:2) = 1;
slices = reshape(slices,gridSize); slices = reshape(slices,gridSize);
end end
if squeezeSlices 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); slices = cellfun(@(s) reshape(s,SliceSize),slices,'UniformOutput',false);
end end
end end
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment