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

Betriebssystem und Dezimaltrennzeichen

 

hal

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.06.2013, 17:04     Titel: Betriebssystem und Dezimaltrennzeichen
  Antworten mit Zitat      
Hi,
ich würde gerne das im Betriebssystem eingestellte Dezimaltrennzeichen ermitteln.
Hat jemand dazu eine Idee?

danke!
hal


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 27.06.2013, 11:18     Titel: Re: Betriebssystem und Dezimaltrennzeichen
  Antworten mit Zitat      
Hallo hal,

Das kommt ganz auf das Betriebssystem und die Matlab-Version an. Bitte poste dies nochmal.

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.06.2013, 13:52     Titel:
  Antworten mit Zitat      
Unabhängig vom Betriebssystem bzw. seinen Einstellungen und der MATLAB Version.

Die MATLAB-Funktion num2str() scheint ja immer einen Punkt als Dezimaltrennzeichen zu benutzen. Klar kann man mit replace() dies dann ändern wenn man ein Komma will. Was ist aber wenn im Betriebssystem ein Punkt als Dezimaltrennzeichen festgelegt ist?

gruß
hal
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 27.06.2013, 15:16     Titel:
  Antworten mit Zitat      
Hallo hal,

Zitat:
Unabhängig vom Betriebssystem bzw. seinen Einstellungen und der MATLAB Version.

Rätselhaft. Benötigst Du wirklich eine Methode, die auch unter Matlab 4.1 auf einer IRIX-Maschine läuft, unter Matlab 5 auf MacOS-7 und Matlab 2013a auf Window 8, Linux und OS-X?!

Matlab verwendet als Dezimal-Trenner einen Punkt. Die Einstellung des Betriebssystems spielt da zum Glück keine Rolle, sonst würden fast alle numerischen Programme bei einer Umstellung nicht mehr korrekt laufen.

Ich nehme an, Dein Problem wird klarer, wenn Du erklärst, was Du genau erreichen möchtest.

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.06.2013, 19:00     Titel:
  Antworten mit Zitat      
Es wird doch eine möglichkeit geben? Oder stößt das große, mächtige und teuere MATALB an seine Grenzen Wink?

Ich möchte Daten aus MATLAB exportieren
Zwischenablage, Textdateien, ...
Die Daten bestehen aus Strings und numerischen Werten. Dann wäre es eben extrem nützlich wenn in den numerischen Werten das für das Betriebssystem eingestellte Dezimaltrennzeichen drin ist.
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 27.06.2013, 23:35     Titel:
  Antworten mit Zitat      
Hallo hal,

Natürlich gibt es da Möglichkeiten, aber eben halt verschiedene je nach Betriebssystem und Matlab Version. Wieso möchtest Du diesbezüglich keine näheren Angaben machen?

Das Gewurstel mit den Dezimal-Kommas bei deutschem Sprach-Schema ist enorm lästig und fehleranfällig (das bertrifft übrigens noch eine Menge weiterer Lokalisierungen). Deswegen beschränken sich die meisten Programme für numerischen Daten auf den Dezimal-Punkt. Auf Anhieb fällt mir nur Excel als Gegenbeispiel ein. Das OpenOffice dies dann als Programm-bezogene Einstellung implementiert hat, finde ich naheliegender.

Ich würde Daten also auf alle Fälle mit dem Dezimal-Punkt exportieren. Wenn Du aber unbedingt das im OS eingestellte Zeichen verwenden möchtest, picke ich mal eine Methode heraus, die auf einigen modernen Matlab-Versionen läuft:
Code:
DFS = java.text.DecimalFormatSymbols
char(DFS.getDecimalSeparator)

Siehe auch http://undocumentedmatlab.com/blog/formatting-numbers/ .
Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Sirius3
Forum-Guru

Forum-Guru


Beiträge: 441
Anmeldedatum: 12.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.06.2013, 23:40     Titel:
  Antworten mit Zitat      
Das Formatieren von Zahlen wird über die Umgebungsvariable LC_NUMERIC festgelegt. Das Interpretieren dieser Angabe hängt von der Konfiguration und Art des verwendeten Betriebssystems ab. »printf« macht hier schon automatisch alles richtig. Matlab setzt aber intern LC_NUMERIC auf 'C' um nicht völliges Chaos zu produzieren. Am stabilsten wird es wohl sein, die entsprechende Locale im Matlabinternen Java zu setzen und dort die Konvertierung von Zahl -> Text zu machen.
Private Nachricht senden Benutzer-Profile anzeigen
 
hal

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.06.2013, 09:46     Titel:
  Antworten mit Zitat      
Danke!
Code:
DFS = java.text.DecimalFormatSymbols
char(DFS.getDecimalSeparator)


ist doch schon was! Very Happy
Das bringt mich deutlich weiter!
 
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.