diff --git a/complete.m b/complete.m index 4f433c213035a554ee6190b4653db808090e50ac..3f3d93591cd0295e8f1581997bc23e0822fa8016 100644 --- a/complete.m +++ b/complete.m @@ -6,8 +6,8 @@ Dir = mfilename('fullpath'); Dir = fileparts(Dir); addpath(genpath(fullfile(Dir,'LRTC'))); -p = inputParser; -p.addOptional('Method', 'rank', @ischar); +p = inputParser; p.StructExpand = true; p.KeepUnmatched = true; +p.addParameter('Method', 'rank', @ischar); p.parse(varargin{:}); Method = p.Results.Method; @@ -22,20 +22,23 @@ switch Method error('Unknown completion method'); end -p.addOptional('alpha' , alpha , @isnumeric); -p.addOptional('betaMult' , betaMult , @isnumeric); -p.addOptional('maxIter' , maxIter , @isnumeric); -p.addOptional('epsilon' , epsilon , @isnumeric); -p.addOptional('TraceNormToRankParam', TraceNormToRankParam, @isnumeric); +Mask = ~isnan(M); + +p.addParameter('Mask' , Mask , @islogical); +p.addParameter('alpha' , alpha , @isnumeric); +p.addParameter('betaMult' , betaMult , @isnumeric); +p.addParameter('maxIter' , maxIter , @isnumeric); +p.addParameter('epsilon' , epsilon , @isnumeric); +p.addParameter('TraceNormToRankParam', TraceNormToRankParam, @isnumeric); p.parse(varargin{:}); +Mask = p.Results.Mask; alpha = p.Results.alpha; betaMult = p.Results.betaMult; maxIter = p.Results.maxIter; epsilon = p.Results.epsilon; TraceNormToRankParam = p.Results.TraceNormToRankParam; -Mask = ~isnan(M); M(~Mask) = 0; M = LRTCADMrho(M,Mask,alpha,betaMult,maxIter,epsilon,TraceNormToRankParam);