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 № 1ezmesh
richiama la funzione handle su una matrice di valori (per trarre beneficio dalle prestazioni di vettorizzazione). Uso .*
per la moltiplicazione.