dividerand — Divide target indices randomly into training, validation, and test sets.
dividerand(Q,trainRatio,valRatio,testRatio) randomly permutes the one-based target indices 1:Q and divides them into training, validation, and test row vectors. dividerand(Q) uses the documented default ratios 0.7, 0.15, and 0.15.
Syntax
[trainInd, valInd, testInd] = dividerand(Q)
[trainInd, valInd, testInd] = dividerand(Q, trainRatio, valRatio, testRatio)Inputs
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
Q | IntegerScalar | Yes | — | Number of targets to divide. |
trainRatio | NumericScalar | No | 0.7 | Training-set allocation ratio. |
valRatio | NumericScalar | No | 0.15 | Validation-set allocation ratio. |
testRatio | NumericScalar | No | 0.15 | Test-set allocation ratio. |
Returns
| Name | Type | Description |
|---|---|---|
trainInd | NumericArray | One-based training-set indices. |
valInd | NumericArray | One-based validation-set indices. |
testInd | NumericArray | One-based test-set indices. |
Returned values from dividerand depend on how many outputs the caller requests.
Errors
| Identifier | When | Message |
|---|---|---|
RunMat:dividerand:InvalidArgument | Inputs, dimensions, replacement flags, or weights are malformed. | sampling: invalid argument |
RunMat:dividerand:Internal | Internal conversion or allocation fails. | sampling: internal error |
How dividerand works
Qmust be a nonnegative integer scalar.Qis capped at 10,000,000 so index partitions fail cleanly before excessive host allocation.- Ratios must be finite nonnegative scalar values, and at least one ratio must be positive.
- Ratios are normalized before allocation, so they do not need to sum to one.
- Returned indices are one-based row vectors and together form a random permutation of
1:Q. - Empty partitions are returned as
1-by-0numeric tensors.
Examples
Default split
[trainInd,valInd,testInd] = dividerand(100)Explicit split ratios
[trainInd,valInd,testInd] = dividerand(3000, 0.6, 0.2, 0.2)Using dividerand with coding agents
Open a RunMat example with live inputs, then ask the agent to explain how dividerand changes the result.
Run a small dividerand example, explain the result, then change one input and compare the output.
FAQ
Does dividerand respect rng?⌄
Yes. The random permutation is drawn from RunMat's global random generator, so rng('default') and numeric seeds make results reproducible.
Related Stats functions
Random
binornd · bootstrp · datasample · exprnd · gamrnd · lhsdesign · mvnrnd · normrnd · random · 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 dividerand is executed, line by line, in Rust.
- View the source for dividerand 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.