Initial Commit
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
function [out, removed] = rmmissing (x, varargin)
|
||||
%RMMISSING Drop missing values (MATLAB R2016b+).
|
||||
%
|
||||
% An owuitools compatibility shim; see contains.m for the policy.
|
||||
%
|
||||
% Numeric and logical data only, where "missing" means NaN. MATLAB also
|
||||
% accepts tables, categoricals, strings and datetimes, where missing
|
||||
% means something different in each; none of those types exist here, so
|
||||
% this refuses them rather than inventing an answer. For a vector the
|
||||
% missing elements go; for a matrix the whole ROW goes, as in MATLAB.
|
||||
|
||||
if (nargin < 1)
|
||||
error ('rmmissing: not enough input arguments');
|
||||
end
|
||||
if (~isempty (varargin))
|
||||
error ('rmmissing: this shim takes only (x) - no dimension or option arguments');
|
||||
end
|
||||
if (~isnumeric (x) && ~islogical (x))
|
||||
error (['rmmissing: this sandbox supports numeric and logical input only, not %s - ' ...
|
||||
'MATLAB''s table, string and categorical types do not exist here'], class (x));
|
||||
end
|
||||
|
||||
if (isvector (x) || isempty (x))
|
||||
removed = isnan (double (x(:)));
|
||||
out = x(~removed);
|
||||
if (size (x, 1) == 1 && ~isempty (x))
|
||||
out = reshape (out, 1, []);
|
||||
end
|
||||
removed = reshape (removed, size (x));
|
||||
return;
|
||||
end
|
||||
|
||||
removed = any (isnan (double (x)), 2);
|
||||
out = x(~removed, :);
|
||||
end
|
||||
Reference in New Issue
Block a user