2009-04-08 9 views
0

Après avoir utilisé la fonction 'solve' sur une équation avec une variable, il semble que Matlab n'aime pas utiliser le point flottant. Donc, ma réponse estMatlab Fraction to Floating Point

ans = -2515439103678008769411809280/29019457930552314063110978530889-1/232155663444418512504887828247112*13479465975722384794797850090594238631144539220477565900842902305^(1/2) 

et je ne suis pas sûr de ce que la meilleure façon de le convertir à une décimale compréhensible est. La meilleure façon que j'ai est jusqu'à présent

eval(char(ans)) 

(qui me donne -0,5002 pour les garder la trace), mais je ne suis pas vraiment satisfait de cette solution.

Quelqu'un peut-il suggérer quelque chose de mieux?

+0

L'aversion pour le flottant est parfaitement compréhensible pour un programme mathématique. Habituellement, vous voulez des résultats exacts et pas une approximation. – Joey

+0

Je suppose que oui, mais c'est principalement pour que je puisse facilement vérifier mes réponses avant de me connecter à Simulink pour faire son intégration numérique. En outre, eval ne fonctionnerait pas sur les vecteurs. –

Répondre

1

Eh bien, le very next page j'ai regardé avait la réponse. C'est la fonction 'double':

double(ans)