A generic multi/monofractal generator. Uses build-in or user supplied template matrices to recursively generate fractal point distributions. The template matrix should be of size [n,n,1] for 2D fractals and [n,n,n] for 3D fractals. If the matrix elements consist of 0s and 1s the resulting distribution will be a monofractal. If there are elements >1 then the result is a multifractal point distribution. Multifractality is handled by iteratively fracturing masses >1 and then randomly sampling the obtained PDF. The main fracturing function is parallelized with parfor.
Example 1: Generate a regular Merger Sponge fractal
pts_mat = fracGen('Menger3D');
Example 2: Generate a random 3D monofractal with D=1.58, sampled by 1000 points
mat_p1 = [0 1; 0 0];
mat_p1(:,:,2) = [1 0; 1 0];
pts_mat = fracGen(mat_p1,1,1000);
Yavor Kamer (2020). Generic Fractal Generator (https://www.mathworks.com/matlabcentral/fileexchange/50664-generic-fractal-generator), MATLAB Central File Exchange. Retrieved .
fixed a bug in the varargin parsing
Inspired by: randp