2016-04-15 10 views
1

Ich versuche, Xlsread Functioin zu verwenden, um Kalkulationstabellen von 6000x2700 (XLSX-Datei) zu lesen.Matlab verlieren Antwort, wenn Verwendung xlsread eine große Kalkulationstabelle lesen

Ich habe zwei Fragen:

Erstens, wenn ich so etwas wie

[num,txt,~]=xlsread(input_file,input_sheet,'A1:CYY6596') 

Matlab verwenden hält 'busy' und verlieren Reaktion zeigt (während ich es in Excel innerhalb von 30 Sekunden öffnen kann).

Gibt es eine Lösung, wenn ich Bereiche der xlsx-Datei nicht durchlaufen möchte? Mit anderen Worten, kann ich einfach eine Tabelle dieser Größe mit xlsread in Matlab ablegen?

Alternativ kann ich Loops verwenden, um diese Dateien Bereich für Bereich zu lesen, aber ich kann die letzte Spalte von jedem der Tabellen nicht identifizieren, es sei denn, ich lese zuerst die gesamte Datei. Daher, wenn ich die letzte Spalte nicht identifizieren kann, ist es schwierig, Schleifen zu machen und meine Interpretation in der Datei auszuführen.

Also meine zweite Frage ist: Gibt es eine Möglichkeit, die letzte Spalte der Tabelle zu identifizieren, ohne die gesamte Tabelle zu lesen?

Danke.

EDIT: Allerdings, wenn ich einen ähnlichen Code, der nur liest ersten 400 Spalten ('A1: RY6596') der Tabelle, solche Probleme nicht passieren.

+0

Versuchen kann es sich um eine Low-Tech-Lösung, aber wenn xlsread nicht gut auf diese Datei funktioniert, können Sie Excel verwenden, um die XLSX-Datei als CSV zu speichern Datei und dann importieren Sie das mit Matlab. –

+0

Danke für die Antwort. Ich habe versucht, mit der CSV-Datei, aber Matlab noch die Antwort verlieren (nach einer Weile, bleiben 0% CPU und eine unveränderte Speicher). –

Antwort

1

Welche Version von Matlab verwenden Sie? Matlab hat ein Problem, bix Excel-Datei zu laden. konvertieren Sie die Excel in CSV und verwenden Sie M = csvread (Dateiname). Sie können versuchen, .xlsx auch in .xls zu konvertieren.

+0

Ich verwende R2015b. Soweit ich weiß, liest csvread nur Zahlen, richtig? Ich möchte jedoch auch Strings in der Tabelle lesen. Ist das anwendbar? Jedenfalls würde ich es wahrscheinlich zuerst versuchen. Vielen Dank. –

+0

Nein, der CSV-Reader kann alles lesen. –

+0

Ich habe csvread versucht. Aber es kann nicht lesen und Fehler geben: "Mismatch zwischen Datei und Format string.Trouble lesen 'Numeric' Feld aus Datei". Ich habe auch überprüft, die Dokumentation von csvread und ziemlich sicher, dass es nicht-numerische Daten nicht lesen kann, während meine viel in den Spreadsheets hat. –

0

Sie das Werkzeug in File Exchange

+0

Danke dafür und ich kann sagen, dass es Text und Nummer lesen kann. Ich habe die Spreadsheets schon auf 5-6 Teile aufgeteilt und das Problem ist für mich schon gelöst. Wie auch immer, danke für das Tool und es kann mir oder anderen eines Tages helfen. –

Verwandte Themen