Quote:
|
Attualmente l'ho implementato in modo brutale, cioè con un ciclo for da 0 a 255 che mi calcola ogni volta il valore della funzione e che controlla se ho trovato un nuovo massimo.
|
Lombardp io ho capito che lui ha una funzione f, fa un ciclo da 0 a 255
e ogni volta calcola il valore di f applicato all'indice del ciclo.
Volevo rispondere a 71104 dicendo che dipende da che calcolo deve
fare la funzione f.
Ricorda che il motore di matlab lavora con gli array e le matrici e che
quindi i cicli for risultano molto lenti.
Per utilizzare le operazioni come moltiplicazione e divisione
tra matrici o array devi utilizzare il punto prima dell'operatore.
Se devi fare, ad esempio, la somma tra due array dovresti scrivere:
> [ 1 2 3 ] + [ 4 5 6 ]
[5 7 9]
> [1 2 3] .* [ 4 5 6 ]
[4 10 18]
le funzioni in matlab si definiscono come
function [r1,r2,...,rn] = f(p1,p2,...pn)
.....
.....
....
dove r1,r2, ..., rn sono i valori di ritorno e p1,p2,pn sono i
parametri in input.
La funzione deve essere salvata in un unico file che si chiama
con lo stesso nome della funzione e con estensione ".m" .
Esempio ( somma.m )
function r = somma(a,b)
r = a + b