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

GUI große Excel Daten einlesen?

 

Johann1000

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.06.2015, 15:58     Titel: GUI große Excel Daten einlesen?
  Antworten mit Zitat      
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

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 16.06.2015, 16:06     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
Johann1000

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.06.2015, 08:29     Titel:
  Antworten mit Zitat      
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

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 17.06.2015, 08:38     Titel:
  Antworten mit Zitat      
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
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.