ECG-Kit 1.0
(1,287 bytes)
%RANDRESET Reset state of random generators
%
% RANDRESET - reset states to 1
% RANDRESET(STATE) - reset states to STATE
% STATE = RANDRESET - retrieve present state (no reset)
% OLDSTATE = RANDRESET(STATE) - retrieve present state and reset
function output = randreset(state)
if nargin < 1 & nargout < 1
state = 1;
end
if nargin > 0
if iscell(state)
% old state format, force switch to old generator
rand('seed',0);
% new state format, force switch to new generator
elseif isstruct(state)
rng(0,'twister');
end
end
if verLessThan('matlab','8.1.0') || strcmp(getfield(rng,'Type'),'Legacy')
% old random number generators
if nargout > 0
% retrieve present state
randstate = cell(1,2);
randstate{1} = rand('state');
randstate{2} = randn('state');
output = randstate;
end
if ~(nargout == 1 & nargin == 0)
% reset
if iscell(state)
rand('state',state{1});
randn('state',state{2});
else
rand('state',state);
randn('state',state);
end
end
else
% new random number generator (rng)
if nargout > 0
% retrieve present state
output = rng;
end
if ~(nargout == 1 & nargin == 0)
% reset
rng(state);
end
end