2013-12-13 56 views
0

我使用八度的ezmesh繪製定義爲線性迴歸的所有z值如下:ezmesh偏移超過500

f = @(x,y) 1 * theta(1) + x * theta(2) + y * theta(3) + x * y * theta(4) 

對於一些固定矢量THETA:

octave:275> theta 
theta = 

    9.4350e+00 
    1.7410e-04 
    3.3702e-02 
    1.6498e-07 

我使用的[0 120000 0 1400]和域可以評估:

octave:276> f(0, 0) 
ans = 9.4350 
octave:277> f(120000, 1400) 
ans = 105.23 

但是,如果我運行:

octave:278> ezmesh(f, [0 120000 0 1400]) 

生成的網格對於(0,0)具有約570的z值,對於(120000,1400)具有恰好低於640的z值。我很困惑。什麼可能導致這個?

編輯:即使我簡化F到下面,會出現類似的行爲:

octave:308> f = @(x, y) (x * y) 

爲什麼ezmesh不處理乘法預期(由我),所以該函數計算如我所料,和在ezmesh中使用函數時值會改變嗎?

+0

我沒有八度,但是你可以嘗試改變@(x,y)x * y到@(x,y)x。* y'嗎? –

+0

它的工作原理。謝謝!我猜lambda是通過傳入的矩陣調用的。不確定何時在網格生成器內進行矩陣乘法是有意義的。 – jonderry

回答

1

ezmesh調用值矩陣上的函數句柄(以從矢量化性能中受益)。使用.*進行乘法運算。