function b = isodd(x) %ISODD True for odd numbers. % % ISODD(X) returns 1's where the elements of X are odd numbers and 0's where % they are not. % % See also ISINT, ISEVEN. % Author: Peter John Acklam % Time-stamp: 2003-04-12 14:28:40 +0200 % E-mail: pjacklam@online.no % URL: http://home.online.no/~pjacklam error(nargchk(1, 1, nargin)); if ~isnumeric(x) error('Argument must be a numeric array.'); end cls = class(x); % class of input argument if isempty(x) b = feval(cls, x); % return empty array of same class else switch cls case 'double' b = mod(x, 2) == 1; case 'single' % "mod" is not defined for class "single"; so convert input to % double, compare, and convert back b = single(mod(double(x), 2) == 1); case {'uint8', 'uint16', 'uint32', 'uint64'} b = bitand(x, 1); case {'int8', 'int16', 'int32', 'int64'} error('Not implemented for classes int8, int16, int32, and int64.'); otherwise error('Argument is of unrecognized class.'); end end