Matlab:esprimere i reali in notazione scientifica

Pubblicità

Giuseppe1985

Utente Attivo
Messaggi
185
Reazioni
0
Punteggio
38
Buongiorno ragazzi,
sapete se esiste e qual è l'istruzione in Matlab che permette di prendere un numero reale, ossia double e che lo restituisce in notazione scientifica quella mantissa esponente allocando una porzione di byte per ciascuna delle tre componenti di essa.
fatemi sapere.
 
Tratto da http://www.mathworks.com/matlabcentral/newsreader/view_thread/151859

soluzione 1
Codice:
[B]
[coefficient,exponent] = strread(strrep(sprintf('%E',0.23),'E','#'),'%f#%f')[/B]
soluzione 2 (dichiarazione di una funzione)
Codice:
[B] [mant,expnt] = mantexpnt(arg)
% MANTEXPNT
%          Returns the mantissa and exponent of a real base 10 argument.
% FILENAME: mantexpnt.m
% 20070710

% TEST DATA:
% arg = (0.5 - rand) * 10^fix(10*(0.5-rand))
% sprintf('\n\t%23.15E\n',arg)

sgn    = sign(arg);
expnt = fix(log10(abs(arg)));
mant  = sgn * 10^(log10(abs(arg))-expnt);
if abs(mant) < 1
    mant  = mant * 10;
    expnt = expnt - 1;
end

% sprintf('\n\t%6.4f x E%+04d\n',mant,expnt)

return        % Added to indicate end of function[/B]

ovviamente personalizza secondo le tue necessità
 
Pubblicità
Pubblicità
Indietro
Top