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

Korrekter Transfer einer Excelliste

 

laze
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 69
Anmeldedatum: 12.10.11
Wohnort: Stuttgart
Version: R2013a
     Beitrag Verfasst am: 05.08.2015, 13:00     Titel: Korrekter Transfer einer Excelliste
  Antworten mit Zitat      
Hallo zusammen,

wenn ich eine Excelliste auslesen möchte, benutze ich normalerweise den bekannten
Code:
[num, txt, raw] = xlsread();
Befehl.

Ich habe nun folgendes Problem:

Angenommen ich habe in einer Spalte eine beliebige Zahlenfolge stehen
1
3
31
2
...

und in einer Zeile taucht eine Doppelbelegung, getrennt durch ein Komma, auf

34
35,4
...

dann würde mit dem
Code:
Befehl normalerweise diese als 35.4000 interpretiert bekommen. Sprich ich hätte eine Fließkommazahl. Wenn ich jetzt die Anforderung habe, dass ALLE Inhalte in den Spalten - egal ob Text oder Zahl - so in MATLAB transferiert werden, wie in der Liste abgebildet, habe ich über die gewöhnlichen Befehle aus meiner Sicht keine Chance.
Ich würde die 35,4 eben gerne genau als 35,4 in meinem späteren Cell Array haben.

Kennt jemand eine Möglichkeit, wie ich das realisieren könnte? Ich dachte bereits daran, sämtlichen Inhalt des Excelsheets in Strings zu transferieren, nur weiss ich nicht wie das gehen könnte.

Danke euch
_________________

--Wannabe
Private Nachricht senden Benutzer-Profile anzeigen


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 05.08.2015, 13:21     Titel:
  Antworten mit Zitat      
werte mit xlsread einlesen und gucken welche ihrer werte nicht den gerundeten werten entsprechen. diese dann in strings umwandeln und punkt durch komma ersetzen.
alternativ kann man natürlich im excel die zahlen auch als string reinstellen. dann werden sie von xlsread auch als string ausgelesen. das macht excel übrigens automatisch wenn man nicht 30,4 sondern 30, 4 schreibt. was ja anscheinen ehr das ist was du meinst wenn du 30,4 schreibst.

das wären meine idee dazu.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
laze
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 69
Anmeldedatum: 12.10.11
Wohnort: Stuttgart
Version: R2013a
     Beitrag Verfasst am: 05.08.2015, 13:26     Titel:
  Antworten mit Zitat      
Danke für die schnelle Antwort.

Automatisiert kann ich allerdings keine der Zahlen ausschließen. Das geht nur nach manueller Sichtung, da rein theoretisch jede Zahl möglich ist, also auch eine 35,4000 bzw. 35 und 4000.
Gibt es einen Befehl mit dem man von MATLAB aus die Excelliste so manipulieren kann, dass alles im Stringformat vorliegt?

Irgendwie über einen actxserver?
_________________

--Wannabe
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 05.08.2015, 13:32     Titel:
  Antworten mit Zitat      
mit xlsread ist mir das nicht bekannt.
vielleicht mit readtable
Zitat:
Das geht nur nach manueller Sichtung, da rein theoretisch jede Zahl möglich ist, also auch eine 35,4000 bzw. 35 und 4000.
das siht für mich dann aber nach einer schlecht gewählten darstellung aus.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
laze
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 69
Anmeldedatum: 12.10.11
Wohnort: Stuttgart
Version: R2013a
     Beitrag Verfasst am: 05.08.2015, 13:35     Titel:
  Antworten mit Zitat      
Leider habe ich auf die Darstellungsart keinen Einfluss. Ich soll lediglich die Anforderung umsetzen ;D

Dann probiere ich mal das
Code:
aus
_________________

--Wannabe
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 05.08.2015, 13:39     Titel:
  Antworten mit Zitat      
Zitat:
Leider habe ich auf die Darstellungsart keinen Einfluss
das ist sehr schade denn wenn man die entscheidung ob 35,4 nun 35.4 oder 35 und 4 ist nicht automatisieren kann scheint die entscheidung dazu zufällig zu entstehen... wobei man das auch automatisieren kann.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 05.08.2015, 13:43     Titel:
  Antworten mit Zitat      
Hallo,

über das Import Tool (Rechtsklick --> Import Data) kann man das Format der Spalten einstellen. Mit dem Dropdown unter dem grünen Haken kann man auch ein Skript oder eine Funktion zum automatisierten Import generieren.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
laze
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 69
Anmeldedatum: 12.10.11
Wohnort: Stuttgart
Version: R2013a
     Beitrag Verfasst am: 05.08.2015, 13:47     Titel:
  Antworten mit Zitat      
Sorry ich habe mich etwas missverständlich ausgedrückt.

die 35,4 wird in jedem Fall aufgetrennt, da ich nur integer akzeptiere.
Allerdings weiss ich nicht ob 35 und 4 oder 35 und 4000 weil MATLAB dann automatisch eben x Kommastellen interpretiert.
_________________

--Wannabe
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 05.08.2015, 14:11     Titel:
  Antworten mit Zitat      
Hallo,

mein Beitrag ist da "dazwischengerutscht".
Hilfreich wäre auch eine kleine Beispieldatei, da die Formatierung der Zellen auch eine Rolle spielen kann.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
laze
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 69
Anmeldedatum: 12.10.11
Wohnort: Stuttgart
Version: R2013a
     Beitrag Verfasst am: 05.08.2015, 14:24     Titel:
  Antworten mit Zitat      
Hallo Harald,

alles klar.
Ich füge einmal ein Testsheet an.
_________________

--Wannabe
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 05.08.2015, 15:37     Titel:
  Antworten mit Zitat      
Hallo,

ich sehe keine Datei. Unabhängig davon wie gesagt: Import Tool versuchen.

Grüße,
Harald
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.