|
|
GUI große Excel Daten einlesen? |
|
Johann1000 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.06.2015, 15:58
Titel: GUI große Excel Daten einlesen?
|
|
Moin,
ich sitze gerade vor einem Problem.
Und zwar habe ich eine GUI erstellt, mit der ich eine Excelsheet einlesen möchte und dieses in den Workspace laden. Hierbei soll jeden Spalte einzeln im Workspace auftauchen damit später meine Simulinksimulation darauf zugreifen kann.
Das Problem ist, das die Spalten Teilweise über 500.000 Zeilen haben und Matlab das nicht packt bzw. abstürzt (oder es einfach zu lange dauert und ich zu ungeduldig bin..) Excel Datei >20Mb.
Auf jedenfall klappt es manuel über den "Import Data" Button von Matlab super. Die GUI jedoch packt das nicht.
Gibts es da eine andere Lösung außer xlsread(filename) damit das ganze genau so schnell läuft wie das manuelle einlesen?
Für tipps bin ich sehr dankbar...
Grüße,
Johann
|
|
|
|
|
Winkow |
Moderator
|
|
Beiträge: 3.842
|
|
|
|
Anmeldedatum: 04.11.11
|
|
|
|
Wohnort: Dresden
|
|
|
|
Version: R2014a 2015a
|
|
|
|
|
|
Verfasst am: 16.06.2015, 16:06
Titel:
|
|
Zitat: |
Hierbei soll jeden Spalte einzeln im Workspace auftauchen damit später meine Simulinksimulation darauf zugreifen kann. |
1000 variablen im workspace zu haben ist sicher nicht sinnvoll. warum muss alles in einer einzelnen variable sein damit du es verwenden kannst? versteh ich nicht
Zitat: |
as Problem ist, das die Spalten Teilweise über 500.000 Zeilen haben und Matlab das nicht packt bzw. abstürzt (oder es einfach zu lange dauert und ich zu ungeduldig bin..) Excel Datei >20Mb.
Auf jedenfall klappt es manuel über den "Import Data" Button von Matlab super. Die GUI jedoch packt das nicht. |
für ne 70 mb datei brauch ich mit xlsread ein paar sekunden.
_________________
richtig Fragen
|
|
|
Johann1000 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 17.06.2015, 08:29
Titel:
|
|
|
|
|
Zitat: 1000 variablen im workspace zu haben ist sicher nicht sinnvoll. warum muss alles in einer einzelnen variable sein damit du es verwenden kannst? versteh ich nicht.
Ich habe Messwerte mit den zugehörigen Zeitreihen, die aber aufgrund des Messmittels unterschiedlich sind (1s, 5s, 15s Werte) somit unterschiedlich viele Zeilen. Die habe ich alle in ein Excel Dokument gepackt damit man nicht jede einzeln einlesen muss. Im Workspace wollte ich dann für jede Spalte eine Matrix erzeugen, worauf in Simulink ich immer auf die passende Matrix (Messwert, Zeitreihe) zugreife.
Ich bin keine Profi in Matlab und Simulink aber falls es eine Elegandere Lösung gibt wäre ich sehr Dankbar.
Zitat: für ne 70 mb datei brauch ich mit xlsread ein paar sekunden
Eventuell lese ich das ganze auch unnötig kompilziert ein.
Ich öffne die Excel Datei über einen Pushbutton und erzeuge in den Popupmenues die ganzen Bezeichnungen der Spalten.
Neben einem Schaubild (Axes) lese ich über mehrerePopupmenus die X,Y Werte ein (Messwert, Zeitreihe). Gleichzeitig Lösche ich meine NaNs raus, da je Matrix so lang ist wie die längste Spalte und dann schreibt auch gleichzeitig das ganze in den Workspace.
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 17.06.2015, 08:38
Titel:
|
|
Hallo,
konkrete Codebeispiele wären hilfreich.
Statt vieler Variablen ist immer ein Cell Array oder ein Strukturarray möglich.
Was xlsread angeht, sollte man es nach Möglichkeit vermeiden, xlsread in einer Schleife aufzurufen. Wenn das unumgänglich ist, weil die Daten in verschiedenen Sheets oder Dateien sind, siehe
http://de.mathworks.com/matlabcentral/fileexchange/22365
Grüße,
Harald
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|