random — Generate random samples from a fitted or named probability distribution.
random(pd) and random(pd,sz...) generate random samples from a ProbabilityDistribution object returned by fitdist. random(distname,params...,sz...) samples supported named distributions directly.
Syntax
r = random(pd)
r = random(pd, sz)
r = random(distname, params, sz)Inputs
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
pd | Any | Yes | — | ProbabilityDistribution object returned by fitdist. |
sz | Any | Variadic | — | Output size. |
distname | StringScalar | Yes | — | Distribution name. |
NameValue | Any | Variadic | — | Name-value options. |
Returns
| Name | Type | Description |
|---|---|---|
r | NumericArray | Random samples. |
Errors
| Identifier | When | Message |
|---|---|---|
RunMat:fitdist:InvalidArgument | Sample data, distribution name, options, or evaluation inputs are malformed. | fitdist: invalid argument |
RunMat:fitdist:Numerical | Distribution parameter estimation fails to converge or is ill-conditioned. | fitdist: numerical failure |
RunMat:fitdist:Internal | RunMat cannot construct distribution outputs. | fitdist: internal error |
How random works
pdmust be a fitted distribution object returned byfitdist, ordistnamemust name a supported distribution.random(pd)returns one scalar sample.random(pd,m,n,...)returns an array with the requested size. A vector size argument such as[m n]is also accepted.- Named normal, exponential, lognormal, gamma, Weibull, and Poisson distributions are supported with scalar parameters followed by optional size arguments.
- Normal, exponential, lognormal, gamma, Weibull, and Poisson fitted distributions are supported.
Examples
Draw a matrix of samples
pd = fitdist([1;2;3], "Normal"); r = random(pd, 2, 3)Draw from a named Weibull distribution
r = random("Weibull", 2, 3, 4, 5)Using random with coding agents
Open a RunMat example with live inputs, then ask the agent to explain how random changes the result.
Run a small random example, explain the result, then change one input and compare the output.
FAQ
Does random support named distribution parameters?⌄
Yes for normal, exponential, lognormal, gamma, Weibull, and Poisson with scalar parameters. Distribution-specific random helpers such as normrnd remain available separately.
Related Stats functions
Random
binornd · bootstrp · datasample · dividerand · exprnd · gamrnd · lhsdesign · mvnrnd · normrnd · randsample · rng · trnd · unidrnd · unifrnd · wblrnd
Ml
bayesopt · classify · confusionmat · crossvalind · cvpartition · fitclinear · fitctree · fitlm · kmeans · knnsearch · lasso · lassoglm · linkage · lscov · mnrfit · optimizableVariable · pdist · pdist2 · perfcurve · predict · regress · ridge · squareform · test · training · tsne
Summary
binocdf · boxplot · cdf · cdfplot · chi2cdf · corr · corrcoef · corrcov · cov · cov2corr · dummyvar · ecdf · filloutliers · fitdist · geomean · grpstats · harmmean · icdf · isoutlier · kstest · kurtosis · lsline · mad · mode · nanmax · normalize · normcdf · norminv · normpdf · onehotdecode · onehotencode · pdf · prctile · quantile · refline · rmse · skewness · tabulate · tcdf · tiedrank · tinv · tpdf · ttest2 · wblinv
Hist
Open-source implementation
Unlike proprietary runtimes, every RunMat function is open-source. Read exactly how random is executed, line by line, in Rust.
- View the source for random in Rust on GitHub
- Learn how the RunMat runtime works
- Found a bug? Open an issue with a minimal reproduction.
About RunMat
RunMat is an open-source runtime that executes MATLAB-syntax code blazing on any GPU. It is licensed under the Apache 2.0 license.
- RunMat automatically optimizes your math for GPU execution on Apple, Nvidia, and AMD hardware. No code changes needed. Simulations that took hours now take minutes.
- Start running code in seconds. RunMat runs in the browser, on the desktop, or from the CLI. No license server, no IT ticket.