/ / Matlab string to double (str2double) - matlab, casting, double

Stringa di Matlab da raddoppiare (str2double) - matlab, casting, double

Sto cercando di creare un'applicazione finanziaria chegestire dati economici utilizzando Matlab. Il file che voglio caricare è in un file CSV e sono doppi numeri in questo formato "1222.3". Finora, sto solo lavorando con una dimensione e sono in grado di caricare i dati in un vettore.

Il problema è che i dati vengono caricati nel vettore in formato String. Per cambiare tutto il vettore in doppio formato uso str2double (vettore), ma i numeri nel vettore finiscono in questo modo:

1222,3 -> 1,222
153,4 -> 0,1534

Ho provato a moltiplicare il vettore per 100 (vettore. * 100), ma non ha funzionato.

Qualche idea?

risposte:

0 per risposta № 1

Matlab estrae automaticamente alcuni fattori comunivettori numerici, che mi ha confuso molte volte me stesso. La linea che dà il fattore comune è facile da perdere, specialmente per i vettori di grandi dimensioni, perché è visualizzata nella parte superiore.

Se definisco un vettore con i due numeri che hai dato, Matlab me lo mostra nel modo seguente:

Formattazione del numero di Matlab

Ha estratto un fattore 1000, come indicato dalla linea 1.0e+03 *.


0 per risposta № 2

Se i componenti vettoriali sono sufficientemente grandi, MATLAB stamperà i numeri in formato esponenziale.

>> a = 1234.56

a =

1.2346e+03

I numeri sono anche mostrati in notazione scientifica nel browser dell'area di lavoro:

formato esponenziale nel browser dell'area di lavoro

È possibile stampare i numeri in formato decimale utilizzando ad es. fprintf:

>> fprintf("%5.3fn",a)
1234.560
>>

Come nota a margine, 1.222 * 100 ≠ 1222 ...