|
markuman |
Forum-Guru
|
|
Beiträge: 320
|
|
|
|
Anmeldedatum: 14.12.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 2013a/2013b, Octave 3.6.4, 3.7.7
|
|
|
|
|
|
Verfasst am: 05.04.2013, 15:10
Titel: xlsxread
|
|
|
|
|
xlsread unter Octave gibt es nur, wenn Java auf dem PC installiert ist, und ausserdem noch die beiden Octave-Forge Packages octave-io und octave-java.
Dann braucht man noch diverse .jar Dateien von poi-apache oder Libreoffice (Unter Windows würde auch octave-io und eine Excel Installation reichen. Sicher bin ich mir da aber nicht).
Dann ist es schnarch Langsam.
Ein Kollege hat mit seinem core2duo 6320 @ 1.86GHz und 8GB RAM 1071 Sekunden für ein 1024x1024 Excel-Sheet zum einlesen benötigt.
Also hab ich mir mal selber eine xlsxread Funktion geschrieben.
http://git.osuv.de/Octave/tree/functions/xlsxread.m
Das ist allerdings quick&dirty und hat für ein 1234x1234 Excel-Sheet auf meinem AMD E-450 @1.65GHz und 8GB RAM 926 Sekunden gebraucht. Nicht wirklich schneller, dafür braucht es kein Java, kein octave-io und kein octave-java.
Zum vergleich, Matlab hat 102 Sekunden hierfür benötigt (siehe Screenshot).
Ca. um den faktor 9 schneller. Ich vermute mal, wenn man meinen code etwas optimiert, und ein rewrite in C macht, erreicht man die selbe Geschwindigkeit, vlt auch etwas schneller.
Allerdings muss man auch sagen, dass meine xlsxread Funktion hart limitiert ist (specs hab ich auch nicht gelesen, alles reverse engineered in den xml Dateien ), es keine großartigen Optionen gibt, ausser die Sheetnr-Auswahl und auch nur xlsx Dateien gelesen werden können, keine xls Dateien!
Ranges oder Berechnungen wie =sum(A1:B3) gibts nicht bzw würden in einem Error enden oder Sinnlose Zahlen liefern (Hab ich nie getestet).
Wenn das sheet ausserdem keine Strings enthält, muss man den Stringanalyse-Part auskommentieren, sonst failed es ebenfalls.
Keine Ahnung ob ich das jemals weiter entwickel, ich hab es eigentlich nur quick&dirty anhand meiner Anforderungen entwickelt Vielleicht kann es hier ja der ein oder andere auch noch gebrauchen.
Und nein, ein Umweg über libreoffice->csv oder ähnlichem ist keine Option (LibreOffice kann ausserdem nur 1024 Spalten lesen). Das kann man für 1-2 Sheets machen, aber nicht wenn man etwas automatisiert braucht.
Beschreibung: |
|
Download |
Dateiname: |
xlsxreadmatch.png |
Dateigröße: |
165.89 KB |
Heruntergeladen: |
1382 mal |
_________________
DIY OR DIE
entropie=char(floor(94*rand(1, round(100.*rand)) + 32))
https://github.com/markuman
|
|
|
|
|
markuman |
Themenstarter
Forum-Guru
|
|
Beiträge: 320
|
|
|
|
Anmeldedatum: 14.12.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 2013a/2013b, Octave 3.6.4, 3.7.7
|
|
|
|
|
|
Verfasst am: 04.06.2013, 12:32
Titel:
|
|
Ein rewrite und 2 Versionen später liegt xlsxread jetzt auf github und ist schneller als Matlab (und damit auch deutlich schneller als die Java Version).
Allerdings maximal rudimentär. Also falls jemand mitentwickeln möchte
https://github.com/markuman/xlsxread/
_________________
DIY OR DIE
entropie=char(floor(94*rand(1, round(100.*rand)) + 32))
https://github.com/markuman
|
|
|
markuman |
Themenstarter
Forum-Guru
|
|
Beiträge: 320
|
|
|
|
Anmeldedatum: 14.12.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 2013a/2013b, Octave 3.6.4, 3.7.7
|
|
|
|
|
|
Verfasst am: 22.09.2013, 13:52
Titel:
|
|
|
|
markuman |
Themenstarter
Forum-Guru
|
|
Beiträge: 320
|
|
|
|
Anmeldedatum: 14.12.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 2013a/2013b, Octave 3.6.4, 3.7.7
|
|
|
|
|
|
Verfasst am: 25.11.2013, 20:44
Titel:
|
|
Mein Code ist in das Octave-Forge Package IO eingeflossen. Das sollte den Aufwand für xlsread mit Octave ohne Excel Installation signifikant vereinfachen und beschleunigen.
http://wiki.octave.org/IO_package#OCT_interface
Mehr oder weniger wird das Github-Repository nicht mehr weitergepflegt.
_________________
DIY OR DIE
entropie=char(floor(94*rand(1, round(100.*rand)) + 32))
https://github.com/markuman
|
|
|
|
|
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.
|
|