/ / ezmesh compensa tutti i valori z di oltre 500 - matlab, ottava

ezmesh compensa tutti i valori z di oltre 500 - matlab, ottava

Sto usando ezmesh di ottava per tracciare una regressione lineare definita come segue:

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

Per alcuni theta vettoriali fissi:

octave:275> theta
theta =

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

Sto usando un dominio di [0 120000 0 1400] e posso valutare:

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

Tuttavia, se corro:

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

La mesh risultante ha un valore z di circa 570 per (0, 0) e appena inferiore a 640 per (120000, 1400). Sono sconcertato, cosa potrebbe causare questo?

EDIT: anche se semplifichi f a quanto segue, si verifica un comportamento simile:

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

Perché ezmesh non gestisce la moltiplicazione come previsto (da me), in modo che la funzione valuti come mi aspetto, e i valori cambiano quando la funzione viene utilizzata all'interno di ezmesh?

risposte:

1 per risposta № 1

ezmesh richiama la funzione handle su una matrice di valori (per trarre beneficio dalle prestazioni di vettorizzazione). Uso .* per la moltiplicazione.