WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

fread liest falsch ein?

 

Coherent

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.03.2013, 04:59     Titel: fread liest falsch ein?
  Antworten mit Zitat      
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

Forum-Meister


Beiträge: 600
Anmeldedatum: 19.01.12
Wohnort: ---
Version: ab R2014b
     Beitrag Verfasst am: 13.03.2013, 08:46     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
Coherent

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.03.2013, 14:26     Titel:
  Antworten mit Zitat      
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

Forum-Meister


Beiträge: 600
Anmeldedatum: 19.01.12
Wohnort: ---
Version: ab R2014b
     Beitrag Verfasst am: 13.03.2013, 15:31     Titel:
  Antworten mit Zitat      
Oh. War wohl noch etwas zu früh für mich Very Happy

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
Private Nachricht senden Benutzer-Profile anzeigen
 
Coherent

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.03.2013, 02:16     Titel:
  Antworten mit Zitat      
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

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 14.03.2013, 16:20     Titel:
  Antworten mit Zitat      
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:
Code:

Dort wird erklärt, dass dies hilft:
Code:
fread(fid, [20, 1], '*uint8');


Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Coherent

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.03.2013, 02:58     Titel:
  Antworten mit Zitat      
alles klar danke
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.