2017-06-01 8 views
0

Ich lese aus dem Text einige Komma getrennte Werte.Wie bekomme ich 6 Ziffern nach Komma (Matlab)?

  • -8.618643,41.141412
  • -8.639847,41.159826
  • ...

schreibe ich Skript unten;

get_in = zeros(lendata,2); 
nums = str2num(line); % auto comma seperation.(two points) 
for x=1:2 
get_in(i,x)=nums(x); 
end 

es automatisch runden Zahlen. Beispielsweise;

(erste Reihe convert "-8,6186, 41,1414" zu)

Wie kann ich jährigen Betrieb ignorieren?

Ich möchte 6 Ziffern nach Komma erhalten.

Ich versuchte "str2double" nach Split-Linie mit Komma Delimeter.

Ich habe versucht, Daten importieren Werkzeug

Aber es ist immer auf 4 Stellen gerundet, auch.

+2

Nur die _displayed_ Werte sind gerundet. Die tatsächlichen Variablen haben eine bessere Genauigkeit (etwa 15 signifikante Zahlen). Verwenden Sie 'format long', um zu überprüfen –

+0

Lesen Sie [hier] (https://stackoverflow.com/a/42483474/5211833) oder [hier] (https://stackoverflow.com/a/32524236/5211833). – Adriaan

Antwort

2

Wie eine der Antworten bereits gesagt hat, sind die Werte nicht wirklich gerundet, nur die angezeigten Werte (zum leichteren Lesen). Wie vorgeschlagen, wenn Sie nur "lang formatieren" in das Befehlsfenster eingeben, das Ihnen helfen soll.

Der folgende Link könnte jedoch bei der Anzeige einzelner Werte auf bestimmte Dezimalstellen helfen: https://uk.mathworks.com/matlabcentral/newsreader/view_thread/118222

Es schlägt die sprintf Funktion. Zum Beispiel würde sprintf(%4.6,data) den Wert von 'Daten' auf 6 Dezimalstellen anzeigen.

+0

'Format lange g' wird auch ziemlich fein arbeiten –

Verwandte Themen