|
|
Falsche Ausgabe bei fread |
|
cprech86 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 24.03.2011, 12:05
Titel: Falsche Ausgabe bei fread
|
 |
Hallo,
ich habe ein C-Programm geschreiben wo ich jetzt anfangs einen INT-Wert mittels
in eine binäre .dat Datei schreibe.
Im Matlab möchte ich jetzt diesen INT-Wert wiederrum auslesen
Durch
kommt jetzt aber statt -300 leider
-1
-1
-2
-44
raus. Kann ich mir leider nicht erklären was da falsch läuft.
Vielleicht hat ja einer eine Idee.
Besten Dank.
|
|
|
|
|
denny |

Supporter
|
 |
Beiträge: 3.853
|
 |
|
 |
Anmeldedatum: 14.02.08
|
 |
|
 |
Wohnort: Ulm
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 24.03.2011, 12:33
Titel:
|
 |
Hallo
Du musst schon genau wissen, in welchen Format du die Daten vorher gespeichert hast? War es etwa wirklich INT8?
Hier mit erstelle ich eine Beispieldatei.
Schreibe -300 binär als INT16 in Datei aus
so lese ich dann aus:
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 24.03.2011, 12:34
Titel: Re: Falsche Ausgabe bei fread
|
 |
Hallo cprech86,
Ein "int" hat auf 32-Bit-Maschinen üblicherweise 32 Bit, also 4 Bytes.
Auf 64-Bit-Maschinen sind es üblicherweise 64 Bit, also 8 Byte.
Wenn Du Dein Programm plattformunabhängig schreiben möchtest (wärmstens zu empfehlen!!!), musst Du also genau angeben, welche Art von Integer Du denn möchtest:
Gruß, Jan
Zuletzt bearbeitet von Jan S am 24.03.2011, 13:00, insgesamt einmal bearbeitet
|
|
|
cprech86 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 24.03.2011, 12:46
Titel: RE:
|
 |
HI JAN!
Besten Dank für die Info zum platformunabhängigen Programmieren. Muss ich in Zukunft mehr darauf achten.
Leider habe ich immer noch ein falsches Ergebnis.
Es kommt jetzt -721485825 raus
kA.
Besten Dank
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 24.03.2011, 13:04
Titel: Re: RE:
|
 |
Hallo cprech86,
Tatsächlich ist dies equivalent:
Allerdings sehe ich keine Verbindung zwichen [-1,-1,-2,-44] und -300. Ich vermute, Du liest nicht in dem File, das Du schreibst. Oder nicht an der gleichen Stelle. Das von mir gepostete Beispiel liefert nämlich in Matlab ordentlich -300 zurück.
Gruß, Jan
|
|
|
cprech86 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 24.03.2011, 14:07
Titel: RE:
|
 |
Besten Dank für die schnelle Anwort!
Das Problem lag leider wo anders.
=> man beachte big/little endian
chris
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|