Fast Optimal Space-Filling Design Generators: ISODEN, ISODIS
バージョン 1.0.0 (5.57 KB) 作成者:
Moreno, M.
Quick and easy generation of equally-distributed samples in the unit hypersphere (ISODEN) or hypercube (ISODIS), in multiple dimensions
ISODEN
Generate n-uniformly distributed points within the unit diameter hypersphere [-1,1] in p-dimensions using energy minimization to equalize point density (minimum-entropy).
Syntax:
[x, k] = isoden(n, p)
[x, k] = isoden(n, p, maxIter)
[x, k] = isoden(n, p, maxIter, step)
Inputs:
- n (integer): Number of points to generate.
- p (integer): Dimensionality of the space.
- maxIter (optional, integer): Maximum number of iterations. Default is based on n and p.
- step (optional, double): Energy-step constant for energy minimization. Default is based on n and p.
Outputs:
- x (n-by-p matrix): Generated points.
- k (double): Final energy density of the sample.
Examples:
% Generate 200 points in 3D space
x = isoden(200, 3);
plotPoints(x)
% Generate 1000 points in 2D space (settings)
[x, e] = isoden(1000, 2, 100, 5e-4);
plotPoints(x)
ISODIS
Generate n uniformly distributed points within the unit length hypercube [0,1] in p-dimensions by maximizing minimum distances between points.
Syntax:
[x, d] = isodis(n, p)
[x, d] = isodis(n, p, maxIter)
[x, d] = isodis(n, p, maxIter, step)
Inputs:
- n (integer): Number of points to generate.
- p (integer): Dimensionality of the space.
- maxIter (optional, integer): Maximum number of iterations. Default is 1000.
- step (optional, double): Distance-step constant for distance maximization. Default is based on n, maxIter, and p.
Outputs:
- x (n-by-p matrix): Generated points.
- d (double): Final average neighbor distance.
Customization:
- maxIter(2) (optional, integer): Iteration step to update the connectivity matrix.
- step(2) (optional, integer): Number of changes (factor of n) before updating the connectivity matrix.
Examples:
% Generate 500 points in 2D space
x = isodis(500, 2);
plotPoints(x)
% Generate 100 points in 3D space (settings)
[x, d] = isodis(100, 3, 2e3, 1e-2);
plotPoints(x, 'scatter')
% Update connectivity every 50 iterations
x = isodis(200, 2, [1e3, 50]);
plotPoints(x)
% Update connectivity every 10*n changes
x = isodis(200, 2, [], [NaN, 10]); % Default step(1)
plotPoints(x)
PLOTPOINTS
Visualize scattered point clouds.
Syntax:
plotPoints(X)
plotPoints(X1, X2, ..., Xp)
plotPoints(..., 'scatter')
Inputs:
- X (n-by-p matrix): Point cloud data.
- X1, X2, ..., Xp (vectors): Separate coordinate components.
- 'scatter' (optional, string): Use scatter plot for 3D data instead of spheres.
Example:
% Load data
load seamount x y z
% Plot sample as matrix
plotPoints([x, y, z])
% Plot sample as vectors
plotPoints(x, y, z, 'scatter')
引用
Moreno, M. (2024). Fast Optimal Space-Filling Design Generators: ISODEN, ISODIS (https://www.mathworks.com/matlabcentral/fileexchange/173860-fast-optimal-space-filling-design-generators-isoden-isodis), MATLAB Central File Exchange. に取得済み.
MATLAB リリースの互換性
作成:
R2024b
すべてのリリースと互換性あり
プラットフォームの互換性
Windows macOS Linuxタグ
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!バージョン | 公開済み | リリース ノート | |
---|---|---|---|
1.0.0 |