2014-12-13 9 views
5

Un valore simbolico occupa 112 byte di memoria con Matlab (toolbox Simbolico matematico). Lo si può vedere tramite il comando whos.Come è memorizzato un valore simbolico in Matlab

So che un valore in virgola mobile (nel framework numerico di Matlab) è memorizzato secondo lo standard IEEE 754. Quindi, con 8 byte (doppia precisione): 52 bit per la mantissa, un bit per il segno e 11 bit per l'esponente.

E i dettagli della memorizzazione di numeri simbolici? Quale standard è usato?

+2

Se si digita 'edit sym' nel terminale matlab, è possibile vedere che i simboli sono memorizzati come oggetti della classe' sym'. La mia ipotesi è che il formato di archiviazione è probabilmente unico per MATLAB e non segue alcun particolare standard. – eigenchris

+0

Inoltre, le dimensioni riportate da 'whos' non riflettono l'utilizzo della memoria per un oggetto/tipo di dati simbolici. Digita 'edit sym' nella finestra di comando ed esplora, ma gran parte di questa viene nascosta nel codice mex. – horchler

+0

Le domande Matlab sono spesso risolvibili in un modo o nell'altro se hanno uno scopo pratico. Quindi mi chiedo se hai bisogno di questa informazione (e per cosa), o forse è solo curiosità? –

risposta

2

Il nucleo della toolbox matematica simbolica è mupad, un software sviluppato dal "gruppo di ricerca mupad" presso l'università di Paderborn. Se vuoi avere un'idea approssimativa di come funziona la matematica simbolica nelle opere di Matlab, prova a cercare lì.

L'oggetto sym è una sorta di wrapper che trasferisce i dati in MATLAB. Puoi facilmente provare che lo sym non contiene tutte le informazioni rilevanti. Crea una costante di cifre 1000, per conservare queste informazioni sono necessari più di 112 byte ma il tuo sym ha ancora le stesse dimensioni.

Problemi correlati