PDA

View Full Version : [Matlab] Troncamento di un numero


Mocaccino
13-01-2009, 16:31
Ciao a tutti!
Ho un problema con Matlab. Devo "far capire" al programma che un numero del tipo: 3,9281*10^-15 lo deve considerare uguale a zero, e quindi rientrarmi in un ciclo while che avevo precedentemente creato.
Ho provato con i comandi digits(x) e vpa(x) ma non sono riuscito a risolvere niente.
Esiste un comando (o qualche procedimento) che mi permette di troncare quel numero alle prime sei cifre NON significative (quindi senza usare chop(x,t) ) in modo tale da prendere 0,00000?
Grazie a tutti e spero di essere stato il più chiaro possibile!

Ken1986
13-01-2009, 17:22
Prova la funzione fix --> Round toward zero


a=3.9281*10^-(15)
fix(a)


Non so se è questo quello che cercavi

Oceans11
13-01-2009, 21:03
Devo "far capire" al programma che un numero del tipo: 3,9281*10^-15 lo deve considerare uguale a zero, e quindi rientrarmi in un ciclo while che avevo precedentemente creato.

E se invece di fare il confronto tra 3,9281*10^-15 e zero, non verifichi questa condizione:
3,9281*10^-15 < Epsilon
con Epsilon > 0 e piccolo a piacere (tuo, tipo 1*10^-6)?

Magari mi sono inventato tutto e quello che ho inteso io non è quello che dicevi tu, magari ci ho beccato.

balrog82
14-01-2009, 14:11
Altra soluzione artigianale (sostanzialmente analoga alla precedente): moltiplichi il numero per 10^6 e usi il comando round e ridividi per 10^6: se il numero iniziale è minore di 5*10^-7, ottieni un numero nullo.

Ovviamente, l'esponente del 10 è il numero di cifre significative che vuoi considerare.