|
|
Eine Waitbar auf Datenimport beziehen |
|
remix92 |
Forum-Fortgeschrittener
|
|
Beiträge: 61
|
|
|
|
Anmeldedatum: 11.07.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 02.02.2018, 16:23
Titel: Eine Waitbar auf Datenimport beziehen
|
|
Hallo zusammen,
Ich habe einen Code, welches ein Excel File als Table in matlab importiert.
Da die Datenmenge sehr groß ist, dauert dies ca 20 min...
Der Restliche Code (Bearbeiten des Tables, Berechnungen usw) dauert ca 1 min.
Ist es denn möglich eine Waitbar zu implementieren, der den Aktuellen Status des Imports anzeigt? Damit mein ich. Die Improtierung soll bis 90% gehen und die Berechnung nach der Importierung sollen 10% betragen?
Ich habe bisher leider Codes für waitbar gefunden, die auf eine For Schleife bezogen waren...
Wäre für jede Hilfe Dankbar:)
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.432
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 03.02.2018, 11:59
Titel:
|
|
Hallo,
während der Abarbeitung eines Befehls ist eine Aktualisierung nicht möglich.
Das bestmögliche wäre m.E.:
Weitere Möglichkeiten:
- die Tabelle stückweise in einer for-Schleife laden. Dann kann man den waitbar aktualisieren
- falls es immer die gleiche Tabelle ist, den Table einmalig einlesen und dann als .mat-File speichenr.
- ein anderes Datenformat, z.B. Textdatei, in Erwägung ziehen
Grüße,
Harald
|
|
|
remix92 |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 61
|
|
|
|
Anmeldedatum: 11.07.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 05.02.2018, 16:20
Titel:
|
|
Vielen Dank für deine Antwort!
Leider ist es nicht immer selbe Datei, die importiert werden muss...
Wie kann ich die Datenimportierung Spaltenweiße vornehmen, so dass ich eine For Schleife miteinbauen und diese an die waitbar verknüpfen kann ?
Komm leider nicht auf die Syntax... Hab diese immer über den eigentlichen Befehl
readtable vorgenommen.
Eine 2te Frage die sich ebenso stellt, dauert dann die Importierung länger?
Gruß
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.432
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 05.02.2018, 16:31
Titel:
|
|
Hallo,
wie viele Spalten sind es denn?
Bei bis zu 26 kann man
char(64+k)
verwenden, um den k-ten Buchstaben des Alphabets zu erzeugen. Bei mehr Spalten ist es schwieriger.
Eine Alternative kann sein,
datastore
zu verwenden und 'SelectedVariableNames' entsprechend anzupassen.
Zitat: |
Eine 2te Frage die sich ebenso stellt, dauert dann die Importierung länger? |
Da kann ich auch nur spekulieren. Am einfachsten wird es sein, das mal für eine oder auch ein paar Dateien auszutesten.
Grüße,
Harald
|
|
|
remix92 |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 61
|
|
|
|
Anmeldedatum: 11.07.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 06.02.2018, 12:39
Titel:
|
|
Danke für die Antwort!
Es sind meist ca 100-300 Spalten.
Ich importiere mit dem Befehl
und habe im nachhinein für die Bearbeitung eine For schleife erzeugt mit
um Spaltenweiße im nachhinein zu arbeiten
kann man die Forschleife nicht irgendwie an die Importierung anpsassen?
zum Beispiel (Die Syntax ist leider hier falsch, da es nur ein Gedankengang ist)
Eine Ausweichmöglichkeit wäre:
Zuerst alles zu importieren und dann im Nachachinein nochmal Spaltenweiße in eine Wietere Variable zu kopieren
Aber wäre halt doppelte Arbeit, was auch wahrscheinlich doppelt an Zeit kosten würde....
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.432
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 06.02.2018, 17:43
Titel:
|
|
Hallo,
Zitat: |
kann man die Forschleife nicht irgendwie an die Importierung anpsassen? |
Sicher kann man das, aber man muss dazu die 'Range' - Option von readtable verwenden und vor allem die Ranges (A:A, B:B, ..., Z:Z, AA:AA, AB:AB, ..., AZ:AZ, BA:BA, BB:BB, ..., BZ:BZ, ...) automatisch erzeugen. Das ist mühsam.
Einfacher ist wie gesagt datastore.
Wieviele Zeilen haben die Dateien in etwa?
Grüße,
Harald
|
|
|
remix92 |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 61
|
|
|
|
Anmeldedatum: 11.07.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 07.02.2018, 10:21
Titel:
|
|
Die Anzahl an Zeilen kann sehr varrieren.
zwischen 100 - 2.000.000...
Mit datastore habe ich bisher noch nie gearbeitet..
Ich hoffe du kannst mir da weiterhelfen
Gruß
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.432
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 07.02.2018, 19:26
Titel:
|
|
Hallo,
hast du denn mal die Doku genau gelesen? Das ist wirklich kein Hexenwerk...
Grüße,
Harald
|
|
|
remix92 |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 61
|
|
|
|
Anmeldedatum: 11.07.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.02.2018, 12:38
Titel:
|
|
Hi,
Vielen Dank. Klappt wunderbar.
habe es auch nun mit einer waitbar verknüpft.
[Habe erstmal einen testlauf mit 10.000 Zeilen und 200 Spalten gemacht!]
Nur dauert es gefühlt eine Ewigkeit, bis die Daten improtiert werden....
mit readtable dauert es ca 2 min
mit datastore, habe ich noch 10 min abgebrochen....
Gibt es eventuell eine Lösung dafür?
Gruß
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.432
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 12.02.2018, 12:45
Titel:
|
|
Hallo,
dank des Fortschrittsbalkens solltest du ja aber zumindest wissen, wie lange es wohl insgesamt gedauert hätte?
Es ist durchaus zu erwarten, dass es länger dauert, die Spalten einzeln zu importieren als am Stück. Intuitiv würde ich erwarten, dass es zeilenweise besser klappt.
Grüße,
Harald
|
|
|
remix92 |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 61
|
|
|
|
Anmeldedatum: 11.07.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.02.2018, 13:22
Titel:
|
|
Nach 10 min, ist an der Waitbar kein Fortschritt zu erkennen...
Deswegen habe ich abgebrochen...
Wie ist es denn möglich Zeilenweiße zu importieren ?...
Tut mir leid für die Fragen, die für Sie wahrscheinlich selbsterklärend sind
Gruß
|
|
|
remix92 |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 61
|
|
|
|
Anmeldedatum: 11.07.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.02.2018, 14:33
Titel:
|
|
Eventuell eine andere Frage, welches die Importierung verkürzen könnte..
Leider weiß ich nicht wie ich das hinbekomme..
Nach der Importierung, nehme ich eine Formatierung vor, welches bestimmte Spalten löscht.
Das wären folgende Bedingung:
1. Spalten die nur NaN werte enthalten.
2. Spalten die nur cell Datentypen besitzen.
3. Spalten dir nur 0 Werte enthalten.
4. Spalten die Datum/Zeit Einträge besitzen.
Das mache ich wie folgt:
Ist es denn möglich vor der Importierung diese Bedingungen zu berücksichtigen?
Dadurch reduziert sich die Spaltenanzahl sehr stark.
von ca 200 Spalten auf 60 Spalten!
Und es werden schlussendlich nur ca 60 Spalten importiert, was die Wartezeit sehr stark beeinflussen müsste
Gruß
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.432
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 12.02.2018, 17:09
Titel:
|
|
Hallo,
Zitat: |
Nach 10 min, ist an der Waitbar kein Fortschritt zu erkennen...
Deswegen habe ich abgebrochen... |
Überhaupt kein Fortschritt? Dass es länger dauert, eine Spalte zu importieren als 200 Spalten zu importieren, fände ich sehr ungewöhnlich.
Zitat: |
Wie ist es denn möglich Zeilenweiße zu importieren ?... |
Bei readtable müsste man den zu importierenden Bereich explizit angeben. Bei datastore kann man statt readall den read-Befehl in einer while-Schleife verwenden.
Damit wir wissen, ob letzteres einen Versuch wert ist, versuch mal
Grüße,
Harald
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.432
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 12.02.2018, 17:30
Titel:
|
|
Hallo,
was die weitere Frage angeht: den Spalteninhalt kann man vorab nicht filtern, den Spaltendatentyp kannst du aber bei datastores vorab abfragen:
Grüße,
Harald
|
|
|
remix92 |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 61
|
|
|
|
Anmeldedatum: 11.07.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.02.2018, 18:04
Titel:
|
|
Hallo,
Wenn ich nur den Code ausführe:
Gibt er mir die Fehlermeldung, dass einige Spalten nicht nicht zusammenknüpfen werden können, da diese Spalten "Cell" oder "Double" Datentyp beistzen...
Gruß
|
|
|
|
Gehe zu Seite 1, 2 Weiter
|
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.
|
|