makefractal.sci

来自「小波分解源代码」· SCI 代码 · 共 40 行

SCI
40
字号
function Frac = MakeFractal(n,base,typ,prob)
// MakeFractal -- Create Random or Deterministic Self-Similar signal
//  Usage
//    Frac = MakeFractal(n,base,type,prob)
//  Inputs
//    n       signal length
//    base    base of digits in expansion
//    type    string 'rand' or 'detrministic'
//    prob    vector of base numbers with sum = 1   
//  Outputs
//    Frac    Self-Similar signal
//
//  Description
//    To get (a discrete approximation to) a Cantor Set,
//    use base=3, type ='deterministic', prob = [.5 0 .5]
//
//    To get the random self-similar signal in Arneodo & Co.
//    use base=4, type = 'random', prob = [.69, -.46, .46, .31]
//
//  Copyright Aldo I Maalouf

	s = ones(1,n);
	t = (0:(n-1)) ./n;
	k = 1;

	while( k <  n)
	   dig = floor(base .* t);
	   t   = base .*t - dig;
	   if string(typ)=='rand',
	        p = shuffle(prob);
	   else 
	        p = prob;
	   end
	  
	   s = s .* p(dig+1);
	   k = k .* base;
	end	
	Frac = s;
	endfunction

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?