一維曲線分形維數的
matlab
程式function d=fractaldim(y,cellmax)
求輸入一維訊號的計盒分形維數
%y是一維訊號
%cellmax:
方格仔的最大邊長
可以取的偶數次冪次
(1,2,4,8...),
取大於資料長度的偶數%d是
y的計盒維數(一般情況下
d>=1
,d=lim(log(n(e))/log(k/e)),
if cellmax
error('cellmax must be larger than input signal!')
endl=length(y);%
輸入樣點的個數
y_min=min(y);
移位操作,將
y_min
移到座標
點y_shift=y-y_min;
重取樣,使總點數等於
cellmax+1
x_ord=[0:l-1]./(l-1);
xx_ord=[0:cellmax]./(cellmax);
y_interp=interp1(x_ord,y_shift,xx_ord);
按比例縮放
y,使最大值為
2^^c
ys_max=max(y_interp);
factory=cellmax/ys_max;
yy=abs(y_interp*factory);
t=log2(cellmax)+1;%
疊代次數
for e=1:t
ne=0;%
累積覆蓋訊號的格仔的總數
cellsize=2^(e-1);%
每次的格仔大小
numseg(e)=cellmax/cellsize;%
橫軸劃分成的段數
for j=1:numseg(e) %
由橫軸第乙個段起通過計算縱軸跨越的格仔數累積
n(e)
begin=cellsize*(j-1)+1;%
每一段的起始
tail=cellsize*j+1;
seg=[begin:tail];%
段座標yy_max=max(yy(seg));
yy_min=min(yy(seg));
up=ceil(yy_max/cellsize);
down=floor(yy_min/cellsize);
ns=up-down;%
本段曲線占有的格仔數
ne=ne+ns;%
累加每一段覆蓋曲線的格仔數
sierpinski三角形的維數 分形維數演算法
分形維數演算法 分形包括規則分形和無規則分形兩種。規則分形是指可以由簡單的迭代或者 是按一定規律所生成的分形,如 cantor 集,koch 曲線,sierpinski 海綿等。這些 分形圖形具有嚴格的自相似性。無規則分形是指不光滑的,隨機生成的分形,如蜿蜒曲折的海岸線,變換無窮的布朗運動軌跡等。這...
盒子分形問題 遞迴實現
昨天碰到了個盒子分形問題,其實剛開始看上去沒思路,後來看題可以把這個問題用遞迴解決,把問題分割解決。題目如下 1 規模為1的盒子分形為 x 2 規模為2的盒子分形為 x x xx x 3 若用b n 1 表示規模為n 1的盒子分形,則規模為n的盒子分形為 b n 1 b n 1 b n 1 b n ...
二維陣列作為形參
以下是網上摘抄的一段 首先,我引用了譚浩強先生編著的 c程式設計 上面的一節原文,它簡要介紹了如何將二維陣列作為引數傳遞,原文如下 略有改變,請原諒 原文開始 可以用二維陣列名作為實參或者形參,在被呼叫函式中對形引數組定義時可以指定所有維數的大小,也可以省略第一維的大 明,如 void func i...