Pagina 1 di 1

octave e funzioni

Inviato: sabato 28 luglio 2007, 9:31
da lucadelu
Ciao a tutti volavo sapere due cose su octave

primo questa funzione può essere corretta?

Codice: Seleziona tutto

#calcola la percentuale a:b=x:100 (dobbiamo conoscere almeno due valori)

function [x] = perc(a, b)

x=a*100/b
secondo dove la devo inserire per farla funzionare in octave?

grazie mille
Luca

Re: octave e funzioni

Inviato: sabato 28 luglio 2007, 11:27
da Onilrem
Caro Lucadelu.
  Penso che questo argomento riguardi la programmazione , non il software ....
-------------Onilrem------------

Re: octave e funzioni

Inviato: sabato 28 luglio 2007, 12:47
da lucadelu
Perchè scusa? ho guardato un po' in giro e molti argomenti su octave sono su software...

Luca

Re: octave e funzioni

Inviato: sabato 28 luglio 2007, 13:18
da jepessen
Beh, dovresti salvarla in un file .m, e poi caricare il file dall'interno del programma.

Qua trovi un breve tutorial per Octave:

http://www.krono86.netsons.org/download ... octave.pdf

Daniele

Re: octave e funzioni

Inviato: sabato 28 luglio 2007, 14:34
da lucadelu
Grazie mille...sono riuscito a caricarla ma da un errore che non capisco..

Codice: Seleziona tutto

octave:2> function perc('4331', '26214')
parse error:

  syntax error

>>> function perc('4331', '26214')
                                        ^

parse error:

  invalid parameter list

>>> function perc('4331', '26214')
                                        ^

octave:2> function perc(4331, 26214)
parse error:

  syntax error

>>> function perc(4331, 26214)
                                     ^

parse error:

  invalid parameter list

>>> function perc(4331, 26214)
                                     ^

Re: octave e funzioni

Inviato: sabato 28 luglio 2007, 14:48
da jepessen
Ma l'input l'hai dato mettendo i numeri fra apici? Perchè a che so io non dovrebbe essere necessario...

Daniele

Re: octave e funzioni

Inviato: sabato 28 luglio 2007, 15:09
da lucadelu
Come puoi vedere nel codice la prima volta si poi ho provato senza...ma il risultato non cambia

Re: octave e funzioni

Inviato: sabato 28 luglio 2007, 15:25
da jepessen
Allora, mi sono appena istallato octave.

Ho definito la funzione all'interno del programma:

Codice: Seleziona tutto

octave:1> function[x]=perc(a,b)
> x=a*100/b;
> endfunction
octave:2> perc(5,6)
ans = 83.333
octave:3> 
In questo modo funziona. Per memorizzarla in un file, devi scrivere la defiinzione della funzione in un file.m, e metterlo in una directory della variabile LOADPATH, in maniera tale che possa leggerla.

Daniele

Re: octave e funzioni

Inviato: sabato 28 luglio 2007, 15:29
da AlmAck
Ciao,
hai dimenticato la scritta end alla fine della funzione, ecco come risulta:

Codice: Seleziona tutto

function [x] = perc(a, b)
x=a*100/b
end 
lo salvi con il nome perc.m e poi in octave dai semplicemente: perc(valore1,valore2)

Ciao

Re: octave e funzioni

Inviato: sabato 28 luglio 2007, 15:38
da lucadelu
jepessen ha scritto: Allora, mi sono appena istallato octave.

Ho definito la funzione all'interno del programma:

Codice: Seleziona tutto

octave:1> function[x]=perc(a,b)
> x=a*100/b;
> endfunction
octave:2> perc(5,6)
ans = 83.333
octave:3> 
In questo modo funziona. Per memorizzarla in un file, devi scrivere la defiinzione della funzione in un file.m, e metterlo in una directory della variabile LOADPATH, in maniera tale che possa leggerla.

Daniele
Se faccio la funzione in octave funziona,ma se chiudo riavvio carico tramite loadpath

Codice: Seleziona tutto

octave:1> loadpath="/home/luca/funzioni_octave/"
loadpath = /home/luca/funzioni_octave/
il file che si chiama perc.m ed all'interno ha:

Codice: Seleziona tutto

function[x]=perc(a,b)
x=a*100/b
endfunction
non va...non capisco.Scusate ma le varie funzioni di base dove sono, magari provo ad inserire il file perc.m in quella cartella li!

Re: octave e funzioni

Inviato: sabato 28 luglio 2007, 15:40
da jepessen
prova con LOADPATH maiuscolo

Re: octave e funzioni

Inviato: sabato 28 luglio 2007, 15:48
da lucadelu
Non cambia niente....

Re: octave e funzioni

Inviato: sabato 28 luglio 2007, 16:14
da AlmAck
Ho visto che usi la funzione cosi:

Codice: Seleziona tutto

octave:2> function perc(4331, 26214)
parse error:

  syntax error
Con questo comando non funziona il octave devi semplicemente mettere il nome della funzione in questo modo:

Codice: Seleziona tutto

octave:2> perc(4331, 26214)
x =  16.522
ans =  16.522

Re: octave e funzioni

Inviato: sabato 28 luglio 2007, 16:21
da lucadelu
AlmAck ha scritto: Ho visto che usi la funzione cosi:

Codice: Seleziona tutto

octave:2> function perc(4331, 26214)
parse error:

  syntax error
Con questo comando non funziona il octave devi semplicemente mettere il nome della funzione in questo modo:

Codice: Seleziona tutto

octave:2> perc(4331, 26214)
x =  16.522
ans =  16.522
Non va in nessuno dei due modi...

Re: octave e funzioni

Inviato: martedì 31 luglio 2007, 0:23
da Onilrem
Ricordo solo che Linux e' CaseSensitive e, penso lo sia anche Octave.

-------Onilrem-----

Re: octave e funzioni

Inviato: mercoledì 8 agosto 2007, 17:45
da lucadelu
Non ci sono ancora riuscito...ora però ho da fare una funzione un pò più complessa e non ne ho voglia di doverla scrivere ogni volta..è possibile salvare la funzione dopo aver fatto questo?

Codice: Seleziona tutto

octave:2> function perc(a,b)
> a*100/b
> endfunction

Re: octave e funzioni

Inviato: mercoledì 8 agosto 2007, 18:51
da Amurian
Allora, se non vuoi stare a modificare il loadpath o il file .octaverc puoi salvare la funzione in un file .m dedicato, esempio:

nel tuo caso abbiamo la funzione perc ed essa andarà definita nel file perc.m.
Inoltre dato che il valore di ritorno è uno solo prova a togliere le parentesi quadre.

Re: octave e funzioni

Inviato: mercoledì 8 agosto 2007, 18:54
da lucadelu
Ci sono appena riuscito grazie alla mailing list, il comando è

Codice: Seleziona tutto

addpath("/home/luca/funzioni_octave/");