78 #if 0 //mtoc++: 'set.Samples'
81 error(" Value must be a positive
integer scalar ");
91 seed = round(cputime*100);
95 r = RandStream(
" mt19937ar ",
" Seed ",seed);
97 nparams = length(params);
100 factor = r.rand(nparams,this.
Samples);
101 miv = repmat([params(:).MinVal]^
t,1,this.
Samples);
102 mav = repmat([params(:).MaxVal]^t,1,this.
Samples);
103 islog = strcmp([params(:).Spacing],
" log ")^
t;
105 miv(islog,:) = log10(miv(islog,:));
106 mav(islog,:) = log10(mav(islog,:));
108 samples = miv + factor.*(mav-miv);
110 samples(islog,:) = 10.^samples(islog,:);
115 erros(
" Dimension of Domain does not match the parameter count. ");
117 samples = zeros(nparams,this.
Samples);
121 factor = r.rand(nparams,this.
Samples);
122 miv = repmat([params(:).MinVal]^t,1,this.
Samples);
123 mav = repmat([params(:).MaxVal]^t,1,this.
Samples);
124 islog = strcmp([params(:).Spacing],
" log ")^
t;
126 miv(islog,:) = log10(miv(islog,:));
127 mav(islog,:) = log10(mav(islog,:));
129 newsamples = miv + factor.*(mav-miv);
131 newsamples(islog,:) = 10.^newsamples(islog,:);
136 numnew = size(newsamples,2);
137 spos = pos:min(pos+numnew-1, this.
Samples);
138 npos = 1:min(numnew,this.
Samples-pos+1);
139 samples(:,spos) = newsamples(:,npos);
144 if size(samples,1) == 1
145 samples =
sort(samples);
167 m = models.BaseFullModel;
168 s = models.BaseFirstOrderSystem(m);
170 s.addParam(
" param_a ", 1);
171 s.addParam(
" param_b ", 34);
173 points = [0.69*sin(0:0.05:pi/2); 0.69*cos(0:0.05:pi/2)];
174 points = [points [0.7*sin(0:0.05:pi/2); 0.7*cos(0:0.05:pi/2)]];
175 valid =
Norm.
L2(points) >= .7;
176 m.Sampler= sampling.RandomSampler;
177 d = sampling.Domain(points, valid);
179 m.Sampler.Samples= 500;
180 samples = m.Sampler.generateSamples(m);
182 plot(samples(1,:),samples(2,:),
" o ",...
183 d.Points(1,:),d.Points(2,:),
" * ",...
184 0.7*sin(0:0.05:pi/2),0.7*cos(0:0.05:pi/2))
197 if ~isa(obj,
" sampling.RandomSampler ")
199 obj = sampling.RandomSampler;
200 obj.Samples= from.Samples;
202 obj =
loadobj@sampling.BaseSampler(obj,from);
function [ matrix< double > params , rowvec< integer > idx ] = filter(matrix< double > params)
Filters from the given parameters only those that belong to this domain.
static function obj = loadobj(obj)
sort
ort the handle objects in any array in ascending or descending order.
function registerProps(varargin)
Call this method at any class that defines DPCM observed properties.
BaseSampler Basis class for parameter sampling classes.
static function res = test_DomainSampling()
setup parameter domain etc domain are all points in unit square with norm > 0.7
matrix< double > Points
Samples from the full parameter domain box specified by the parameter's MinVal and MaxVal...
Samples
The number of samples to take.
function matrix< double > samples = performSampling(params)
Randomly generates input samples by choosing params and time parameter by chance. ...
function res = isposintscalar(value)
isposintscalar: Backwards-compatibility function for matlab versions greater than 2012a ...
static function rowvec< double > n = L2(matrix< double > x)
Returns the discrete norm for each column vector in x.
RandomSampler Selects Samples many random parameters.
Norm: Static class for commonly used norms on sets of vectors.
integer Seed
The seed for the random number generator.