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
다운로드 수: 8
업데이트 날짜: 2024/10/12

라이선스 보기

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