|
Coherent |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.03.2013, 04:59
Titel: fread liest falsch ein?
|
 |
Hallo,
ich möchte aus einer Datei Zahlen einlesen und diese, sofern das geht, in einem Vektor speichern.
Gebe ich jedoch zb vektor = fread(fid,20,'single');
oder vektor = fread(fid,20,'uint8');
So wird jedesmal ein 20x1 double Vektor erstellt.
Warum?
Gruß
|
|
|
|
|
Seban |

Forum-Meister
|
 |
Beiträge: 600
|
 |
|
 |
Anmeldedatum: 19.01.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ab R2014b
|
 |
|
|
 |
|
Verfasst am: 13.03.2013, 08:46
Titel:
|
 |
Hallo,
Du gibst die 20 ja selber im Aufruf der Funktion an.
Aus der Hilfe:
Zitat: |
A = fread(fileID, sizeA) reads sizeA elements into A and positions the file pointer after the last element read. sizeA can be an integer, or can have the form [m,n]. |
http://www.mathworks.de/de/help/matlab/ref/fread.html
Du kannst die 20 weglassen oder durch inf ersetzen, dann werden alle Zahlen eingelesen.
Grße,
Seban
|
|
|
Coherent |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.03.2013, 14:26
Titel:
|
 |
Das Problem ist nicht, dass er 20 Felder einliest, sondern dass er das eingelesene als double speichert, und nicht wie angegeben, als uint8 oder single
Gruß
|
|
|
Seban |

Forum-Meister
|
 |
Beiträge: 600
|
 |
|
 |
Anmeldedatum: 19.01.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ab R2014b
|
 |
|
|
 |
|
Verfasst am: 13.03.2013, 15:31
Titel:
|
 |
Oh. War wohl noch etwas zu früh für mich
Aus oben gepostetem Link:
Zitat: |
A = fread(fileID, sizeA, precision) interprets values in the file according to the form and size described by the precision.
precision: String that specifies the form and size of the values to read. Optionally includes the class for the output matrix A.
Use one of the following forms:
'source'
Specifies class of input values. Output matrix A is class double.
Example: 'int16'
'source=>output'
Specifies classes of input and output.
Example: 'int8=>char'
... |
MfG
|
|
|
Coherent |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.03.2013, 02:16
Titel:
|
 |
Ok das geht jetzt danke.
Und kann man das beim einlesen sofort in einem Vektor speichern anstatt in einer Liste? also in 500x1 single anstatt 1x500 single.
Wenn ich mir den Konvertierungsschritt dannach sparen würde würde das schon ziemlich helfen.
Danke schonmal.
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 14.03.2013, 16:20
Titel:
|
 |
Hallo Coherent,
[1 x 500] ist keine "Liste", sondern ein Zeilen-Vektor, während [500 x 1] ein Spalten Vektor ist.
Bitte lies die hervorragende Dokumentation von Matlab, bevor Du das Forum fragst:
Dort wird erklärt, dass dies hilft:
Gruß, Jan
|
|
|
Coherent |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 15.03.2013, 02:58
Titel:
|
 |
|
|
|
|
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.
|
|