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

Problem beim einlesen einer Datei über GUI

 

MorrisThorne
Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 07.12.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.12.2007, 15:07     Titel: Problem beim einlesen einer Datei über GUI
  Antworten mit Zitat      
Hallo da draussen,

ich bin erst relativ neu in der Mathlab-Gemeinde und habe vorhin schon das Forum durchkämmt, jedoch keine Antwort auf mein Problem gefunden. Daher wende ich mich nun direkt an euch allwissende Smile

Problem: Ich habe eine Datei, in der sind die Daten abgespeichert in der Form
(auszug aus der Datei)
...
-900,0000000000E-3 -3,7925005000E+0
-895,0000000000E-3 -3,7893515000E+0
-890,0000000000E-3 -3,7960407500E+0
-885,0000000000E-3 -3,7877722500E+0
-880,0000000000E-3 -3,7906322500E+0
... (usw)

Jetzt möchte ich diese Daten vermittels eines GUI's einlesen, das habe ich in etwa so versucht


Code:
[fn,pn] = uigetfile('*.dat','Messfile laden');
   fid = fopen([pn fn]);
   data = fscanf(fid,'%f');
   nd = length(data);            %  Länge des Vektors bestimmen
   nr = nd/2;                        % Anzahl Zeilen bestimmen
   data = reshape(data,2,nr)'
 


Nun erscheint in der Prompt die Fehlermeldung

Code:
??? Error using ==> reshape
Size arguments must be real integers.
 



Da scheint Matlab also ein Problem mit den "Kommas" zur Dezimalentrennung zu haben. Denn bei einem anderen Datensatz mit "Punkt" zur Dezimalentrennung hatte ich diese Fehlermeldung nicht.

Hat da jemand ne Idee ausser alles von Hand zu ersetzen (das wäre SEHR viel Arbeit, die man sich ja generell mit Computerprogrammen erleichtern will )? Wink

Grüßle, und danke schonmal im Voraus für die Hilfe
_________________

*Oink oink, kommt her, ihr Schweinchen! Oink oink!*
Private Nachricht senden Benutzer-Profile anzeigen


outsider
Forum-Meister

Forum-Meister


Beiträge: 806
Anmeldedatum: 03.09.07
Wohnort: München
Version: R2012b
     Beitrag Verfasst am: 10.12.2007, 11:49     Titel:
  Antworten mit Zitat      
Zitat:
Da scheint Matlab also ein Problem mit den "Kommas" zur Dezimalentrennung zu haben.

Ganz genau! Der Workaround ist die Kommas gegen Punkte zu ersetzen. Auf einfachste weise kann das so gemacht werden:
Code:
fid0 = fopen('original.txt','r');
fid1 = fopen('temp.txt','w');
fwrite(fid1,strrep(char(fread(fid0))',',','.'));
fclose(fid0);
fclose(fid1);


der neu angelegter File beinhaltet nun Punkte statt Kommas.


MfG
Private Nachricht senden Benutzer-Profile anzeigen
 
MorrisThorne
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 07.12.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.12.2007, 16:59     Titel:
  Antworten mit Zitat      
Vielen Dank, das war genau das was ich brauchte Very Happy
_________________

*Oink oink, kommt her, ihr Schweinchen! Oink oink!*
Private Nachricht senden Benutzer-Profile anzeigen
 
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 - 2024 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.