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 Dezimaltrennzeichen ('0,41' -> 0.41)

 

zesir1
Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 22.03.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.07.2011, 14:05     Titel: Problem Dezimaltrennzeichen ('0,41' -> 0.41)
  Antworten mit Zitat      
Hallo alle zusammen.
Ich stehe vor dem Problem, dass meine Rohdaten das Dezimaltrennzeichen ',' haben, z.B.: '0,41'. Wenn ich nun mit xlsread() diese Daten einlesen will, erkennt Matlab diese nicht mehr als Zahlen sondern als Strings. Kann mir jemand sagen, wie ich diese Zahlen auch als Zahlen einlesen kann oder diese mit einer möglichst schnellen Routine in Zahlen umwandeln kann. Besten dank für eure Hilfe. Gruess zesir1
_________________

Autoritätsdusel ist der grösste Feind der Wahrheit. (A. Einstein)
Private Nachricht senden Benutzer-Profile anzeigen


Peter Quint
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 95
Anmeldedatum: 21.02.11
Wohnort: Lübeck
Version: R2010b
     Beitrag Verfasst am: 12.07.2011, 14:31     Titel:
  Antworten mit Zitat      
Wahrscheinlich gibt es einen regulären Ausdruck mit dem Du das eleganter und schneller hinbekommst. Ansonsten:
Code:

A='3,2';
num2str(regexprep(A, ',','.'));
 

ans = 3.2
Private Nachricht senden Benutzer-Profile anzeigen
 
zesir1
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 22.03.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.07.2011, 14:47     Titel:
  Antworten mit Zitat      
Danke für deine Hilfe, nun kann ich das Problem bereits lösen. Falls jemand noch eine elegantere Lösung hat, bin ich natürlich auch nicht abgeneigt...
Beste Grüsse
_________________

Autoritätsdusel ist der grösste Feind der Wahrheit. (A. Einstein)
Private Nachricht senden Benutzer-Profile anzeigen
 
tompie
Forum-Guru

Forum-Guru


Beiträge: 260
Anmeldedatum: 19.09.07
Wohnort: München
Version: immer alles
     Beitrag Verfasst am: 13.07.2011, 09:56     Titel:
  Antworten mit Zitat      
Hallo,

ich denke mal, das Ganze hat eher mit den Ländereinstellungen deines Excel-Programmes zu tun...


Gruß tompie
Private Nachricht senden Benutzer-Profile anzeigen
 
zesir1
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 22.03.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.07.2011, 10:05     Titel:
  Antworten mit Zitat      
Mir ist bekannt, dass man das Trennzeichen unter 'Excel-Optionen\Erweitert' einstellen kann (Das ändert jedoch bei den bestehenden Daten nichts!).
Auch die Excel Routine =WERT(ERSETZEN(B2;FINDEN(",";B2);1;".")) kenne ich. Jedoch möchte ich an meinen Rohdaten nichts ändern müssen, sondern die Daten egal mit welchem Dezimaltrennzeichen von Matlab bearbeiten lassen...
_________________

Autoritätsdusel ist der grösste Feind der Wahrheit. (A. Einstein)
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 13.07.2011, 11:15     Titel:
  Antworten mit Zitat      
Hallo

Verstehe ich nicht, was du unter Rohdaten hier meinst,
denn XLSREAD liest Zahlen doch entsprechend COM-Schnittstelle. Also sollte Komma in EXCEL nicht störend sein, dass ist ja nur Darstellung.

Code:

A=[10.5,12.5, 13.5, 16.5];
xlswrite('zahlen.xls',num2cell(A));
B= xlsread('zahlen.xls');
if isequal(A,B)
   disp('es hat funktioniert')
end
 


Nachtrag: Das ist bereits in Excel wohl falsch eingeben, es ist als Text eingeben, also muss du Formatierung der Zellen ändern. Außerdem unterstreicht Excel als Warnung solche Zellen. Wenn man auf diese Warnung klickt, bietet Excel Option, in Zahlen solche Zellen umzuwandeln
Private Nachricht senden Benutzer-Profile anzeigen
 
zesir1
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 22.03.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.07.2011, 11:30     Titel:
  Antworten mit Zitat      
Hallo, unter Rohdaten meine ich Excelsheets die pro Zeile eine Zahl enthalten, die manchmal das Dezimaltrennzeichen '.' haben und manchmal das Dezimaltrennzeichen ','.
Nun mit Komma scheint Matlab nichts am Hut zu haben. Da ich die Daten erhalte und nicht selber aufbereite (und es die Menge auch nicht zulässt) soll Matlab, diese Unschönheit der Rohdaten korrigieren.
Und natürlich hast du Recht damit, das bei einem Komma als Dezimaltrennzeichen, die Zahl als String in Excel gespeichert ist.
_________________

Autoritätsdusel ist der grösste Feind der Wahrheit. (A. Einstein)
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 13.07.2011, 12:13     Titel:
  Antworten mit Zitat      
Hallo

Also wenn du die Quelle der Fehler nicht eliminieren kannst, dann muss mit der Zwischenlösung mit REGEXPREP leben.
Private Nachricht senden Benutzer-Profile anzeigen
 
zesir1
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 22.03.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.07.2011, 12:50     Titel:
  Antworten mit Zitat      
Ok, danke für eure Hilfe.
_________________

Autoritätsdusel ist der grösste Feind der Wahrheit. (A. Einstein)
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 - 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.