matlab盒子分形維數 分形維數 matlab

2021-10-13 11:15:57 字數 1305 閱讀 8097

一維曲線分形維數的

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...