www.mikrocontroller.net

Forum: PC-Programmierung MatLab Problem mit xls-file


Autor: Bratensosse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Morgen,

ich würde gerne ein xls-file in Matlab einlesen. Dazu verwende ich die 
folgenden aufruf: daten=('filename.xls')
filename.xls besteht aus Simulationswerten mit 82 Zeilen und 63 Spalten.
Matlab legt mir die Variable "daten" an und im Workspacefenster ist zu 
sehen, dass ein double arry 40x63 angelegt wurde. Die letzte Zeile wird 
mit NaN abgeschlossen. Die frage ist nun, warum er bei Zeile 40 schon 
aufhört Daten einzulesen. Und warum ist die letzte eingelesene Zeile 
"not a number". In meinem xls-sheet sind nach der dritten Zeile überall 
Werte (Zahlen) drin (Bis Zeile 82).

Hat jemand eine Idee wie ich alle Daten einlesen kann? Liegt das an 
der Formatierung des xls-files? Habe ich die maximale Matrix-größe 
überschritten?
Arbeite erst seit ein paar Tagen mit MatLap, also nicht gleich hauen:-)

Frühwochenendliche Grüße

Autor: Bratensosse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nachtrag!

Eingelesen wird das xls-file natürlich mit:

daten=xlsread('filename.xls')

Sorry!

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sicher, dass nicht irgendwo ein (evtl. nicht sichtbares) Sonderzeichen 
reingerutscht ist? Darauf würden zumindest die NaNs hindeuten, weil 
Zahlen dann nicht mehr als Zahlen erkannt werden...

Sind die Zellen im Excel-Sheet alle als "Zahl" formatiert?

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So, grad mal ausprobiert:
Zumindest bei mir werden alle Werte eingelesen, auch wenn zwischendurch 
ganze Zeilen mit nicht-numerischem Zeugs gefüllt sind.

Autor: Bratensosse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey Johannes,

Ja, Zellen sind alle als Zahl formatiert.
Sonderzeichen habe ich nicht gefunden.
Habe das excel-file als "Microsoft Ecxel 5.0/95-Arbeitsmappe(*.xls)" 
abgespeichert. Office Packet ist das 2007.
Habe mal geselesen, dass xlsread nur mit excel98 funktioniert. Das kann 
ich aber beim speichern des xls-files nicht angeben.

Könnte es damit zusammenhängen?

Grüße!

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bratensosse wrote:
> Hey Johannes,
>
> Ja, Zellen sind alle als Zahl formatiert.
> Sonderzeichen habe ich nicht gefunden.
> Habe das excel-file als "Microsoft Ecxel 5.0/95-Arbeitsmappe(*.xls)"
> abgespeichert. Office Packet ist das 2007.
Öh, welche Version von MATLAB hast Du? Ich habe es mit der 2007a 
getestet, und die kann mit einem ganz normalen Excel-Sheet (gespeichert 
als "Microsoft Excel Arbeitsmappe") problemlos arbeiten...

Autor: Bratensosse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmmm na sowas!

Habe 6.5.0.180913a Release 13
von 2002

Aber müsste meinst du die xlsread wurde da verändert?!?

Grüße

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bratensosse wrote:
> Aber müsste meinst du die xlsread wurde da verändert?!?
Nun, offensichtlich liegt the Mathworks etwas daran, dass man mit 
aktuellen MATLAB-Versionen auch Excel-Dokumente verarbeiten kann, die 
nicht von irgendeiner Uralt-Version stammen...

BTW:
Besorg Dir mal ne aktuelle MATLAB-Version! Besonders, wenn Du grad 
anfängst, damit zu arbeiten, ist ein vergleichweise uralte Version 
absolut nicht ratsam! Und so teuer ist die Studi-Version nicht...

Autor: Marco -. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

ich möchte Daten aus einer xls-File einlesen. Klappt soweit auch. Nun 
möchte ich aber noch den Sheet-Namen einlesen. Das funktioniert ja mit:

[typ, desc] = xlsfinfo(filename);

Bei mir kommt jetzt aber immer eine Fehlermeldung:

??? Subscripted assignment dimension mismatch.

Error in ==> xlsfinfo at 80
        indexes(i) = (strfind(class(sheet), 'Worksheet') > 0);

Error in ==> xls at 5
[typ, desc] = xlsfinfo(filename);


filename wurde vorher deklariert.

Gruß Marco

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.