NachrichtHallo,
a) LabView schreibt immer BigEndian Daten, es hilft also nix
"Real32" in der falschen Byte-Ordnung einzulesen
b) das Trennzeichen für die Dezimalen hat nichts mit der Programmiersprache
zu tun sondern mit dem kulturellen Hintergrund des Landes, im
deutschsprachigen Raum wird ein Komma verwendet, in den englischsprachigen
Ländern ein Punkt, die Anpassung des Betriebssystems an das jeweilige
Land kümmert sich darum -- deshalb verwendet z. B. Excel in Deutschland
1,2 in Amerika aber 1.2
c) Tausender-Trennzeichen sind eine sehr gute Sache, und es wäre schon schön
wenn Mathematica kleine Zwischenräume bei den Zahlen für die
Formatierung einfügen würde einfach weil
3 149 265 123 567 356
besser zu lesen ist als
3149265123567356
d) kann mir jemand mal verraten, welchen Sinn es hat, ein offensichtlich
falsches Einlesen der Daten zu posten ? Es gibt noch einige hundert
Varianten wie man beim Einlesen in Mathematica völligen Schrott produziert,
aber die muß man ja wohl nicht der Allgemeinheit zugänglich machen ...
Gruß
Jens
----- Original Message -----
From: Nowak Robert
To: Carsten Panzner ; Mathematica Forum
Sent: Friday, June 10, 2005 11:05 AM
Subject: RE: datei einlesen
was heist anderes programm ?
welches programm ?
mit single-presicion numbers sind mit sicherheit binäre IEEE 4byte floatingpoint zahlen gemeint.
die könnte man sicher mit BinaryRead[] oder BinaryReadList[] einlesen.
da muss man halt einiges an arbeit investieren.
hier mal ein schnellschuss wenn man das erste byte überliest und die weiteren 40bytes als jeweils 4byte floatingpoint
liest erhält man 10 zahlen die möglicherweise sinn machen (oder auch nicht)
weiters zu beachten ist das in jeder vernünftigen programmiersprache (wie z.b. mathematica) das dezimaltrennzeichen
der punkt "." ist und nicht irgendwelche kommmas oder strichpunkte, auch gibt es keine tausendertrennzeichen oder
ähnlichen unsinn.
BinaryRead["09.dat",Join[Table["Byte",{1}],Table["Real32",{10}]]]//Rest
{720.054,578.195,2047.23,1751.61,981.46,1839.73,1806.45,1185.64,1606.76,867.023}
l.g. robert
-----Original Message-----
From: Carsten Panzner [mailto:carsten@XXXXXXX.de]
Sent: Thursday, June 09, 2005 9:54 PM
To: Mathematica Forum
Subject: datei einlesen
hallo
ich möchte eine Datei in mathematica einlesen. ein beispiel befindet sich im anhang. die datei wurde von labview
erstellt.
Über die Art der datei ist in der hilfe folgendes angegeben:
"Sie können dieses VI zum Schreiben skalierter Daten, die von Datenerfassungs-VIs erfasst wurden, verwenden, ohne
deren Darstellung zu ändern. Verwenden Sie dieses VI mit Fließkommazahlen ... schreibt ein array von single-presicion
numbers (SGL) to a bytestream file."
In einem editor ist nix ausser "zeichenmüll" zu erkennen. Wenn ich die datei mit einem anderen programm anschaue
sieht der inhalt so aus:
Index;Y-Wert;2200;1;0
0;992,050048828125
1;990,1884765625
2;987,624938964844
3;983,810180664063
4;981,460266113281
5;979,873352050781
6;979,232482910156
7;976,821533203125
8;975,38720703125
9;975,02099609375
10;974,837890625
11;975,26513671875
12;974,258056640625
13;975,9365234375
14;976,4248046875
15;976,72998046875
16;976,85205078125
17;976,72998046875
18;976,1806640625
19;974,89892578125
20;974,624267578125
usw.
die erste zeile wird in mathematica nicht benötigt und kann verworfen werden.
die datei soll so eingelesen werden dass eine tabelle mit wertepaaren entsteht. etwa so:
{
{0,992.050048828125},
{1,990.1884765625},
{2,987.624938964844},
{3,983.810180664063},
{4,981.460266113281},
{5,979.873352050781},
{6,979.232482910156},
{7,976.821533203125},
{8,975.38720703125},
{9,975.02099609375},
{10,974.837890625},
{11,975.26513671875},
{12,974.258056640625},
{13,975.9365234375},
{14,976.4248046875},
{15,976.72998046875},
{16,976.85205078125},
{17,976.72998046875},
{18,976.1806640625},
{19,974.89892578125},
{20,974.624267578125},
usw.
}
meine probleme sind also das entziffern des kauderwelsch in der datei,
das ersetzen des komma durch einen punkt,das ersetzen des semikolon durch ein und das erstellen einer tabelle.
weiß da jemand weiter?
dankedankedanke
carsten