2013-03-27 234 views
0

爲了找到最佳擬合(通過polyfit),我得到負p值,但matlab不接受它(下標索引必須是真正的正整數或邏輯)。有什麼方法可以使用它嗎?我想不出替代方法。我會永遠得到負面的價值。在Matlab中使用負值

編輯:

我想平坦的曲線的基線,爲。我正在運行循環以適合從1到3的順序。然後我使用最小的常數值來找到最佳擬合,然後從整個曲線中減去它以獲得基線。我嘗試了很少的曲線,但效果很好,但沒有與所有的數據,因爲上面描述的問題。我工作的代碼

部分:

for i=1:3 
    [p,s]=polyfit(x,y,i); 
    a=s.normr; 
    b(i,1)=p(1); 
    normr(i,1)=a; 
    ind=find(b==min(b)); 
    mn=b(ind,1); 
    Yflat=y-mn(1)*(x-mean(x)); 
    ca{2,2}=Yflat; 
    clear a b normr p s rte ind ind2 Yflat 
end 
+2

你用p做什麼?您應該包含該代碼。 – Molly 2013-03-27 18:18:00

回答

0

下面的代碼(從評論+初始化x的代碼,y)的執行。問題是什麼?

x = 1:50; 
y = randn(size(x)); 

for i=1:3 
    [p,s]=polyfit(x,y,i); 
    a=s.normr; 
    b(i,1)=p(1); 
    normr(i,1)=a; 
    ind=find(b==min(b)); 
    mn=b(ind,1); 
    Yflat=y-mn(1)*(x-mean(x)); 
    ca{2,2}=Yflat; 
end 
+0

你沒有問題,在發佈之前,我清理了它...也許一些額外的變量,我有他們正在創造問題..謝謝.. – 2013-03-27 19:48:50

1

當我的圖像轉換成負座標,

我通常記錄例如一個偏移 offset = [ -5, -8.5 ] 並保存在矩陣的強度值與開始(1,1)像往常一樣,

但是,當涉及到計算,讓座標陣列加起來以偏移

例如[ actualX, actualY ] = [ x, y ] + offset ;

它可能需要額外的努力,但它的工作原理。

祝你好運!