|
|
Probleme beim automatischen Einlesen von *.mat-Dateien |
|
Shavens |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 31
|
 |
|
 |
Anmeldedatum: 20.11.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 22.11.2012, 11:00
Titel:
|
 |
Dieser Artikel existiert nicht oder nicht mehr auf dem Amazon-Server.
Das Debugging ergibt folgendes Ergebnis:
In uiopen at 177
In AProbe at 17 %hier steht der erste load befehl
Warning: The value of local variables may have been changed to match the
globals. Future versions of MATLAB will require that you declare
a variable to be global before you use that variable.
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.500
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 22.11.2012, 11:50
Titel:
|
 |
|
 |
|
Hallo,
das Problem ist weiterhin, dass du versuchst, Dateien einzulesen, die keine .mat-Dateien sind.
Zitat: |
Das mit den *.mat-Files funktioniert nicht, da auch mein Skript, dass ich ausführen möchte (AProbe.m) eine mat-Datei ist |
Dein Skript ist, wie du schon sagst, eine .m-Datei. Damit kann es keine .mat-Datei sein!
Zitat: |
Es ist jetzt so, dass er die Dateien schon einliest |
Ja, was denn nun?
Kein Einlesen, dann Fehlermeldung?
Teilweises Einlesen, dann Fehlermeldung?
Vollständiges Einlesen, dann Fehlermeldung?
Zitat: |
Als Beispiel hat die Variable Temperatur die Structure 1891x1 double |
Ist die Variable aufgebaut, oder ist es eine skalare Struktur?
Zitat: |
mit meinem Skript lade ich ein field mit der Structure 1x1, worauf ich nicht zugreifen kann. |
Warum nicht?
Bitte berücksichtige, dass wir nicht sehen können, was du siehst oder machst. Wir sind daher auf möglichst klare, eindeutige Beschreibungen dessen angewiesen.
Mit dem Debugging mit "dbstop if error" landest du tief im Code. Es kann besser sein, einen Haltepunkt in die problemhafte Zeile zu setzen und sich dann die Variablen anzusehen. Bei for-Schleifen können ein oder mehrere dbcont nötig sein, um an die Stelle zu kommen, wo das Problem wirklich auftritt. Alternative ist ein "conditional breakpoint" (Strich vor Zeile rechtsklicken)
Grüße,
Harald
|
|
|
Shavens |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 31
|
 |
|
 |
Anmeldedatum: 20.11.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 22.11.2012, 12:33
Titel:
|
 |
|
 |
|
Zitat: |
das Problem ist weiterhin, dass du versuchst, Dateien einzulesen, die keine .mat-Dateien sind.
Dein Skript ist, wie du schon sagst, eine .m-Datei. Damit kann es keine .mat-Datei sein!
|
Ich habe versucht wie Sirius es geraten hat den Pfad in
zu ändern. Daraufhin kommt die Fehlermeldung:
Error using load
Unable to read file D:\...\Auswertung\*.mat\Dateiname.mat: Invalid argument.
Zitat: |
Ist die Variable aufgebaut, oder ist es eine skalare Struktur?
|
Die Frage habe ich leider nicht richtig verstanden. Also es handelt sich um einen Vektor, der (wie in meinem Beispiel zuvor) 1891 einträgen.
Zitat: |
mit meinem Skript lade ich ein field mit der Structure 1x1, worauf ich nicht zugreifen kann.
Warum nicht?
|
Habe jetzt versucht, mit der Variable zu arbeiten und bekomme dann folgende Fehlermeldung:
Undefined function 'mrdivide' for input arguments of type 'struct'.
Des weiteren ist mir bekannt, dass die Dateien die Form zB 1x48 char aufweisen.
Zitat: |
Ja, was denn nun?
Kein Einlesen, dann Fehlermeldung?
Teilweises Einlesen, dann Fehlermeldung?
Vollständiges Einlesen, dann Fehlermeldung?
|
Wenn ich das Skript durchlaufen lasse, ist das letzte Ergebniss die Variablen der letzten Datei im Ordner, von daher gehe ich davon aus, dass er die *.mat Dateien einliest...Hab versucht einen conditional breakpoint zu setzen aber damit konnte ich leider nicht richtig was anfangen:-(.
Ich hoffe ich konnte es etwas genauer beschreiben, falls nicht einfach fragen.
Vielen Dank für die Hilfe
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.500
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 22.11.2012, 14:05
Titel:
|
 |
Hallo,
Zitat: |
Error using load
Unable to read file D:\...\Auswertung\*.mat\Dateiname.mat: Invalid argument. |
Du siehst ja, was MATLAB hier fälschlicherweise versucht. Dann musst du es eben nur so anpassen, dass MATLAB das versteht.
Da ich jetzt wieder nicht weiß, was "folder" bei dir ist und wie du es weiter verwendest, kann ich dir da nicht weiterhelfen.
Zitat: |
Habe jetzt versucht, mit der Variable zu arbeiten und bekomme dann folgende Fehlermeldung:
Undefined function 'mrdivide' for input arguments of type 'struct'. |
Das heißt, dass du zunächst das Feld extrahieren musst:
Sollte aber nun wirklich bekannt sein, wenn man sich auch nur ein kleines bisschen mit Strukturen auseinandergesetzt hat.
Grüße,
Harald
|
|
|
Shavens |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 31
|
 |
|
 |
Anmeldedatum: 20.11.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 22.11.2012, 15:01
Titel:
|
 |
Zitat: |
Du siehst ja, was MATLAB hier fälschlicherweise versucht. Dann musst du es eben nur so anpassen, dass MATLAB das versteht.
Da ich jetzt wieder nicht weiß, was "folder" bei dir ist und wie du es weiter verwendest, kann ich dir da nicht weiterhelfen.
|
Hier mein Teil des Codes, den es betrifft:
Muss ich da um das *.mat noch Klammer setzen oder so? Hab es nicht hinbekommen.-(
Auf den Tipp von Sirius hab ich folgendes versucht:
Sirius-Tipp war:
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.500
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 22.11.2012, 16:00
Titel:
|
 |
Hallo,
Zitat: |
Hier mein Teil des Codes, den es betrifft |
Ist das wirklich der gesamte Teil, den es betrifft? Hast du nicht später noch folgendes drin?
fullfile hängt die Bestandteile aneinander. Für diese Zwecke darf folder dann natürlich kein '*.mat' enthalten.
Mit sirius' Tipp sollte das aber auch nicht passieren, deine Fehlermeldung deutet jedoch darauf hin.
Dann sieht es so aus:
Grüße,
Harald
Zuletzt bearbeitet von Harald am 22.11.2012, 16:23, insgesamt einmal bearbeitet
|
|
|
Shavens |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 31
|
 |
|
 |
Anmeldedatum: 20.11.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 22.11.2012, 16:14
Titel:
|
 |
So hatte ich es schon und es passiert nun leider gar nichts mehr...
Es werden keine Dateien geladen und auch die Variablen dateiname, g etc. sind leer.
Zitat: |
fullfile hängt die Bestandteile aneinander. Für diese Zwecke darf folder dann natürlich kein '*.mat' enthalten.
|
Ich möchte doch gerade die '*.mat' files einlesen, die '*.m* files sind das Problem...
Mein Code:
Zuletzt bearbeitet von Shavens am 22.11.2012, 16:25, insgesamt einmal bearbeitet
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.500
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 22.11.2012, 16:25
Titel:
|
 |
Hallo,
Zitat: |
So hatte ich es schon und es passiert nun leider gar nichts mehr... |
Ja, da fehlt ein \. Den habe ich im vorherigen Beitrag eingefügt.
Zitat: |
Ich möchte doch gerade die '*.mat' files einlesen |
Das ist mir schon klar. Es ging mir auch darum, dein Problem von 13:05 zu addressieren, wo das '*.mat' ja offensichtlich einmal zuviel drin war.
Grüße,
Harald
|
|
|
Shavens |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 31
|
 |
|
 |
Anmeldedatum: 20.11.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 22.11.2012, 16:27
Titel:
|
 |
Wirklich danke, dass du mir hilfst und ich möchte auch wirklich nicht nerven. Hab halt nicht so viel Plan und bin damit ziemlich allein gelassen worden und habe nun etwas Zeitdruck...
Habe es korrigiert und bekomme nun folgende Meldung:
Error using dir
Function is not defined for 'double' inputs.
Ist soweit ja auch logisch, weil meine Daten in Dateien des Formats (zB) 1x48 char und die Variablen Temperatur=1891x1 double vorliegen.#
Muss ich jetzt die Struktur der daten verändern oder gibt es einen Alternativbefehl zu dir(), die double behandeln kann?
|
|
|
Sirius3 |

Forum-Guru
|
 |
Beiträge: 441
|
 |
|
 |
Anmeldedatum: 12.11.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 22.11.2012, 16:53
Titel:
|
 |
Hallo,
wie rufst Du Deine dir-Funktion jetzt wieder auf?
Da sollte ja nicht Temperatur als Argument vorkommen.
|
|
|
Shavens |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 31
|
 |
|
 |
Anmeldedatum: 20.11.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 22.11.2012, 17:10
Titel:
|
 |
Habe so gesehen nichts geändert am dir-Befehl, außer, dass er nur die *.mat Dateien einlesen soll
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.500
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 22.11.2012, 17:18
Titel:
|
 |
Hallo,
der \ muss in den String mit rein.
Und lass uns doch bitte nicht jedes Mal nachfragen, was du nun machst...
Grüße,
Harald
|
|
|
|
Gehe zu Seite Zurück 1, 2
|
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 - 2025
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.
|
|