-
t = [-6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6];
yt = [194118 222460 272957 328193 363785 402448 ..
lg_yt = log10(yt);
lg_a = sum(lg_yt) / length(yt)
lg_b = sum(t.*lg_yt) / sum(t.^2)
a = 10^lg_a;
b = 10^lg_b;
a = max(yt - a * b.^t)
phi = linspace(0, 2*pi, length(t));
wt = asin((yt - a * b.^t) / a) -phi;
w = wt / t;
程式可以計算出前3個方程,不知道第4個方程的phi是0 2pi的某個值,還是一系列的值。 如果是確定值,只需將 phi 的賦值更改為相應的值即可。
-
我能幫你寫一下你如何在第三個公式中定義 a 和 b 嗎?
-
1)劃分子區域。
方法一:影象I為矩陣,將其劃分為子區域,就是按照一定規律取矩陣對應的行列。
例如,在 i 100*100 矩陣中,10*10 子區域為:
那麼第乙個塊是:(1:10,1:10)子區域編號是(1,1)。
第二個塊是:(11:20,10) 子區域編號為 (2,1)。
依此類推:這可以通過迴圈來實現:
for i=1:10;
for j=1:10;
eval(['i' num2str(i) num2str(j) 'i(1+10*(i-1):10+10*(i-1),1+10*(j-1):10+10*(j-1))'
endend
每個子區域是 i11、i12、i13...。i1010
示例:<>
方法二:使用“裁剪”命令裁剪出相應的區域
i2=imcrop(i,rect)
矩形是相應區域的邊界。
例如:i11=imcrop(i,[1,1,10,10]); 即子區域左上角和右下角的坐標。
示例如下:
for i=1:10;
for j=1:10;
eval(['i' num2str(i) num2str(j) 'imcrop(i,[1+10*(i-1),1+10*(i-1),10+10*(j-1),10+10*(j-1)])
endend
<>2)如何查詢和繪製直方圖:
x,n]=hist(i(:)1:255);
x 返回橫坐標陣列單元格之間的中點---頻率統計資訊。
n 返回縱坐標陣列---每個間隔的頻率。
plot(n,x)
此外,還可以直接使用:
p=imhist(i);
plot(p);
概率密度:plot(p n);
n 是區域中的總點數,例如 10*10。
3) 使用帶有灰度直方圖的分割區域:
for i=1:10;
for j=1:10;
p(10*(i-1)+j,:)imhist(i(1+10*(i-1):10+10*(i-1),1+10*(j-1):10+10*(j-1)))
endend
然後,每個子區域的直方圖統計量位於 p 矩陣的每一行中,總共 100 行。