WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Variablen aus mat-Unterstruktur laden

 

miss_ahnungslos
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 17.02.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.02.2017, 19:44     Titel: Variablen aus mat-Unterstruktur laden
  Antworten mit Zitat      
Guten Abend zusammen,

ich bin (ganz klassisch) Matlab-Neuling und gerade dabei, ein Script zu schreiben, das mir beim Auslesen von Prüfstandsdaten helfen soll.

Die Herausforderung für mich:
Die Variablen liegen nicht auf der ersten Unterebene des mat-Files, das vom Prüfstand gespeichert wird.
Vielmehr sieht es so aus:
Snapshotxxxx (als 1x1 struct) -> Data (1x1struct) -> MeasuredData (1x43 struct) -> dann kommen die Variablennamen (als yyyyx1 double), die ich ansprechen will.

Wobei xxxx die durchlaufende Nummer des Messprotokolls ist und yyyy die Anzahl an Messwerten.

Das Aufrufen von Snapshots funktioniert, und auch das Laden der Variable "Data" in den Workspace funktioniert. Aber ich schaffe es nicht, Variablen von den tieferen Ebenen aufzurufen.

Bisher habe ich die einzelnen Messwerte als Pfad einzeln aufgerufen, also z.B. zum Plotten von Zeile 3 der Measured Data definiert: y=Snapshot0094.Data.MeasuredData(3).Data
Ich muss mir aber pro Auswertung durchschnittlich fünf Messwerte ansehen. D.h. möchte ich ein anderes Messprotokoll laden, muss ich in jeder Variablendefinition die Nummer ändern.

Da ich eine relativ große Anzahl an Messprotokollen habe, ist das keine Lösung. Rolling Eyes

Könnte mir bitte jemand damit helfen? :/ ich wäre euch sehr dankbar.
Private Nachricht senden Benutzer-Profile anzeigen


miss_ahnungslos
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 17.02.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.02.2017, 11:24     Titel:
  Antworten mit Zitat      
Kann mir denn niemand helfen? Oder ist die Frage zu trivial :/ Tut mir Leid, falls es so sein sollte.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 20.02.2017, 11:29     Titel:
  Antworten mit Zitat      
Hallo,

welche Nummer möchtest du ändern?
Die 3 sollte ja relativ problemlos sein.
Das 0094 ist schwieriger, und solche dynamischen Variablennamen sind generell nicht empfehlenswert.

Wenn das nicht vermeidbar ist und die Daten aus einer .mat-Datei geladen werden, sollte folgendes gehen:
Code:
data = load('file.mat');
k = 94;
y=data.(['Snapshot' num2str(k, '%04d')]).Data.MeasuredData(3).Data;


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
miss_ahnungslos
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 17.02.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.02.2017, 11:47     Titel:
  Antworten mit Zitat      
Hallo Harald,

ich danke dir für deine Antwort! Mein Verdacht erhärtet sich, dass es sich für einen routinierten Anwender um totalen Mumpitz handelt Wink

Ich möchte die 0094 ändern - d.h. ich definiere am Anfang des Scripts die Nummer des Snapshots, dessen Daten geladen werden sollen.
Leider lässt sich das mit den Dateinamen nicht anders lösen :/

Dein Code funktioniert geändert schon mal sehr gut Smile Tausend Dank dafür!

Code:
k = 94
data = load(['Snapshot' num2str(k, '%04d')]);
y=data.(['Snapshot' num2str(k, '%04d')]).Data.MeasuredData(3).Data;


Ich schaue jetzt mal, dass ich das ganze zum Laufen bringe. Ich bin leider einfach nicht firm, was die Matlab-Syntax angeht... aber da hilft wohl nur Üben, Hilfe lesen und von Experten lernen :/

Schönen Tag dir und danke nochmal für deine Hilfe.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.