diff --git a/complete.m b/complete.m
index 65c3f1bdc3823234a9e0c3e5ec5f2e2614e227b9..e219dc9051d695c770c9874eec93b5303459fc2a 100644
--- a/complete.m
+++ b/complete.m
@@ -4,8 +4,8 @@ function [LFRef,LFMask] = complete(LFRef,varargin)
 
 LFSize = size(LFRef);
 numDims = ndims(LFRef);
-colDims = 1:min(3,numDims);
-rowDims = 4:numDims;
+colDims = [];
+rowDims = [];
 
 p = inputParser; p.StructExpand = true; p.KeepUnmatched = true;
 p.addParameter('colDims', colDims, @isnumeric);
@@ -15,6 +15,10 @@ p.parse(varargin{:});
 colDims = p.Results.colDims;
 rowDims = p.Results.rowDims;
 
+if (isempty(colDims)&&isempty(rowDims)); colDims = 1:min(3,numDims); end
+if isempty(colDims); colDims = setdiff(1:numDims,rowDims); end
+if isempty(rowDims); rowDims = setdiff(1:numDims,colDims); end
+
 colSize = LFSize(colDims);
 rowSize = LFSize(rowDims);
 
diff --git a/factorize.m b/factorize.m
index 4dff1bc5dcc5db5b52d7307dc3349d11085877e9..72cbc221dd22b00a27145f27fc0af39693e43b0b 100644
--- a/factorize.m
+++ b/factorize.m
@@ -4,8 +4,8 @@ function [LFB,C,U,S,V] = factorize(LFRef,k,varargin)
 
 LFSize = size(LFRef);
 numDims = ndims(LFRef);
-colDims = 1:min(3,numDims);
-rowDims = 4:numDims;
+colDims = [];
+rowDims = [];
 
 p = inputParser; p.StructExpand = true; p.KeepUnmatched = true;
 p.addParameter('colDims', colDims, @isnumeric);
@@ -15,6 +15,10 @@ p.parse(varargin{:});
 colDims = p.Results.colDims;
 rowDims = p.Results.rowDims;
 
+if (isempty(colDims)&&isempty(rowDims)); colDims = 1:min(3,numDims); end
+if isempty(colDims); colDims = setdiff(1:numDims,rowDims); end
+if isempty(rowDims); rowDims = setdiff(1:numDims,colDims); end
+
 colSize = LFSize(colDims);
 rowSize = LFSize(rowDims);