|
|
MATLAB HDF Datei für FFT importieren (von ArtemiS/NI DIAdem |
|
NewBeeGuest |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.06.2019, 16:36
Titel: MATLAB HDF Datei für FFT importieren (von ArtemiS/NI DIAdem
|
|
|
|
|
Hallo,
ich möchte mit MATLAB gerne Messdaten einer Schwingungsanalyse auswerten. Diese Daten sind in einer HDF-Datei mit mehreren Channels und Metadaten.
Bis jetzt habe ich die Daten mit ArtemiS SUITE und NI DIAdem geöffnet und bearbeitet. Beide Programme kommen jetzt jedoch an ihre Grenzen.
Bin kompletter Neuling in MATLAB, daher scheitert leider schon der Import der HDF Datei.
Ich habe zunächst den Current Folder von MATLAB auf den Ordner mit der Messdatei umgestellt. In der Dokumentation von MathWorks steht der Befehl "h5disp(filename)" um zunächst die Struktur und die Metadaten sehen zu können. Bei Filename habe ich zunächst den Namen des Files eingegeben.
Command Window: "Undefined variable "filename..." or class "filename...".
Verwendete Version: MATLAB R2016a.
Ich freue mich auch Hilfe bzw. einen Tipp wie ich die HDF Datei öffnen/importieren kann und die Messwerte zunächst einmal auswählen und sehen zu können.
Vielen Dank!
|
|
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 12.06.2019, 17:03
Titel: Re: MATLAB HDF Datei für FFT importieren (von ArtemiS/NI DI
|
|
Hallo NewBeeGuest,
Bitte poste eine Kopie des Codes, anstatt zu erzählen, was der Code tun soll. Poste auch eine Kopie der vollständigen Fehlermeldung, denn dort finden sich die Details, die für eine Lösung benötigt werden.
Gruß, Jan
|
|
|
NewBeeGuest |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 13.06.2019, 11:52
Titel:
|
|
Hallo Jan,
vielen Dank für die schnelle Antwort. Mein Code ist bis jetzt sehr übersichtlich:
Als Fehlermeldung kommt im Command Window:
"Undefined variable "Messung_1" or class "Messung_1".
Verwendete Version: MATLAB R2016a.
Vielen Dank!
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 13.06.2019, 16:53
Titel:
|
|
Hallo NewBeeGuest,
Zunächst rate ich mal wieder vom "brute clear header" ab.
clear all
löscht alle Funktionen aus dem RAM. Sie von der langsamen Festplatte wieder nachzuladen ist reine Zeitverschwendung. Alle Variablen zu löschen sollte auch überflüssig sein, wenn man ordentlich programmiert. Um den WorkSpace sauber zu halten, verwendet man am besten Funktionen. Das ist viel besser, als per
clear all
alle aus dem Speicher zu katapultieren.
Das eigentliche Problem wird aber schnell klar und steht auch in der Fehlermeldung:
Es gibt hier keine Variable, die "Messung_1" heißt. Du möchtest ja auch eigentlich etwas anderes, denn "Messung_1" ist wahrscheinlich der Name des Files, oder? Dann:
mit Quotes um den Namen. Dann ist 'Messung_1' ein CHAR-Vektor.
Gruß, Jan
|
|
|
NewBeeGuest |
Forum-Newbie
|
|
Beiträge: 4
|
|
|
|
Anmeldedatum: 13.06.19
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.06.2019, 07:39
Titel:
|
|
|
|
|
Hallo Jan,
vielen Dank für den Tipp mit
clear all
. Bei meinen ersten Versuchen hatten sich beim Ausprobieren immer neue Variablen angelegt, habe den Befehl nun aber entfernt.
Genau, 'Messung_1' ist der Filename.
Benötige ich zum öffnen von HDF-Files noch ein Plugin oder Add-on?
Die Signal Processing Toolbox ist soweit ich weiß installiert.
Mein Code:
Im Command Window habe ich auch den richtigen "Current Folder":
Zeigt meine Messfiles an.
Legt auch einen "ans" mit dem richtigen Pfad im Workspace an.
Beim Run erfolgt nun folgende Fehlermeldung:
Zitat: |
Error using h5infoc
Unable to open file. Filename may be corrupt or have unsupported characters
Error in h5info (line 74)
hinfo = h5infoc(filename,location);
Error in h5disp>display_hdf5 (line 68 )
hinfo = h5info(options.Filename,options.Location);
Error in h5disp (line 48 )
display_hdf5(options); |
Ich habe bereits den Dateinamen geändert (keine Unterstriche mehr) um die "unsupported characters" vielleicht zu eliminieren. Daran liegt es jedoch nicht.
Ich nehem an, das öffnen von HDF-Files bei Schwingungsauswertungen/FFTs ist mit MATLAB ja sicher möglich.
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 14.06.2019, 18:00
Titel:
|
|
|
|
|
Hallo NewBeeGuest,
Zitat: |
Genau, 'Messung_1' ist der Filename. |
Bist du sicher, dass das File keine Extension hat?
Zitat: |
Benötige ich zum öffnen von HDF-Files noch ein Plugin oder Add-on? |
Das kannst du einfach ausprobieren. Wenn der
hdfread
Befehl funktioniert, ist alles vorhanden.
"close all" und "clc" sind übrigens auch nicht unbedingt sinnreich. Wozu sollen hier alle GUIs geschlossen werden?
Zitat: |
Error using h5infoc
Unable to open file. Filename may be corrupt or have unsupported characters |
Die Meldung bedeutet, dass der File-Name nicht passt. Das könnten entweder unsichtbare Unicode-Buchstaben sein, oder du hast wirklich die File-Extension vergessen. Das kannst du testen:
Zitat: |
Ich habe bereits den Dateinamen geändert (keine Unterstriche mehr) um die "unsupported characters" vielleicht zu eliminieren. |
Das klingt nach herumraten. Beim Programmieren ist das in Allgemeinen nicht hilfreich. Wenn der File-Name Underscores enthält, müssen die im Befehl natürlich auch angegeben werden.
Wie lautet nun genau der Filename?
Benenne das File testweise um in 'file.hdf'. Klappt das Lesen dann?
Gruß, Jan
|
|
|
NewBeeGuest |
Forum-Newbie
|
|
Beiträge: 4
|
|
|
|
Anmeldedatum: 13.06.19
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 17.06.2019, 07:46
Titel:
|
|
|
|
|
Hallo Jan,
der Filename hat natürlich eine Extention. Diese habe ich im Code auch angegeben. Zur Verdeutlichung hier im Forum jedoch mit "Messung_1" ersetzt, damit jeder weiß was die Messdaten sind.
Zum Testen habe ich die Datei nun mal in "file.hdf" umbenannt.
Der Befehl
hdfread
funktioniert insofern, dass der Aufbau der Funktion als Info angezeigt wird, wenn ich die Funktion eingebe.
close all
habe ich aus meinen Übungen zum Plotten von Funktionen verwendet. Ansonsten entstehen jedes mal neue Fenster bei einem Run. Beim vielen Ausprobieren war der Desktop mit
close all
immer aufgeräumt. Du hast Recht, bei der jetzigen Anwendung ist es nicht mehr erforderlich.
Wenn ich
hdfread
ausprobiere mit:
Erscheint die Fehlermeldung:
Zitat: |
Error using hdfread>dataSetInfo (line 338 )
Not enough input arguments.
Error in hdfread (line 209)
[hinfo, params] = dataSetInfo(varargin{:}); |
Logisch, da ich ja noch nicht das Argument weiß. Dafür ja erstmal
h5disp
.
Bei deinem Vorschlag mit
exist
gibt es leider auch eine Fehlermeldung. Code:
Fehlermeldung:
Zitat: |
Undefined function or variable 'file'. |
Wenn ich unten im Command Window eingebe:
Gibt es "ans = 2".
Bei einem nicht vorhandenen Dateinamen "file_xyz.hdf" gibt es "ans = 0".
Wird der Dateityp eventuell nicht unterstützt?
Komisch ist jedoch, dass ich sie sowohl in ArtemiS SUITE als auch in NI DIAdem problemlos öffnen kann und alle Channel sehen/bearbeiten kann.
Vielleicht hast du ja noch eine Idee oder jemand anderes der in MATLAB mit HDF-Dateien arbeitet, kann mir einen Tipp geben.
Vielen Dank!
|
|
|
NewBeeGuest |
Forum-Newbie
|
|
Beiträge: 4
|
|
|
|
Anmeldedatum: 13.06.19
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 18.06.2019, 13:12
Titel:
|
|
Hallo zusammen,
ich wollte nur kurz mitteilen, dass ich eine (vorläufige) Lösung für mein Problem gefunden habe.
In der ArtemiS SUITE ist es möglich die HDF Datei als MATLAB 'filename.mat' Datei zu exportieren. Danach kann ich sie mit MATLAB einlesen und auf die Daten in einem sogenannten "struct" zugreifen.
Der Zugriff und ein erster Plott funktionieren also bereits
Vielen Dank für die schnelle Hilfe und die Tipps. (vor allem Jan)
An der ein oder anderen Stelle ergben sich mir als Einsteiger in Zukunft sicher noch ein paar Fragen.
|
|
|
|
|
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.
|
|