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

Zugriiff auf Struct mittels Cellls

 

HaveIT
Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 29.04.16
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 29.04.2016, 21:20     Titel: Zugriiff auf Struct mittels Cellls
  Antworten mit Zitat      
Hallo

ich habe folgendes Problem ich habe Dateien importiert welche Vektoren enthalten und auf verschiedene struct-Variablen abgespeichert. Nun möchte ich automatisch auf einen bestimmten vektor der daten zugreifen.
Deswegen habe ich mir eine Cell-variable gemacht wo die Namen der struct-Variablen als string stehen.
etwa so:
Code:

Datei1=importdata(....)
Datei2=importdata(...)
...
Name={'Datei1';datei2';'datei3'}

 

nun möchte ich mittels einer schleife den gleichen vektor aus allen daten in eine matrix schreiben können.
also sozusagen
Code:

for ii=1:1:3
      Matrix=Matrix[:, Name(i).Vektor1();
 

leider funktioneirt das so erstmal nicht Very Happy
kann mir jemand helfen?

LG
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


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

wie du vielfach nachlesen kannst, sind dynamische Variablennamen keine gute Idee.

Wie wäre es stattdessen mit
Code:
data.Datei1=importdata(....)
data.Datei2=importdata(...)
...

Dann ist der Zugriff z.B. so möglich:
Code:
Name = 'Datei1';
data.(Name).Vektor1


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

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 29.04.16
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 30.04.2016, 00:09     Titel:
  Antworten mit Zitat      
Hallo

danke erstmal für deine schnelle Antwort!
Jetzt steht ich etwas auf der Leitung aber wieso sind das dynamische Variablennamen?
ich mach mir ja nur eine Zelle in die ich die Namen schreibe um sie mittels der for-schleife bearbeiten zu können.
Gibts da keine methode das machen zu können?
ich hab nämlich ca 30 von den dateien und da wäre eine schleife zum rauskopieren der vektoren einfach sehr praktisch anstatt das für jeden datensat einzeln zu machen Smile


LG HaveIT
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 30.04.2016, 09:16     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
wieso sind das dynamische Variablennamen?
ich mach mir ja nur eine Zelle in die ich die Namen schreibe um sie mittels der for-schleife bearbeiten zu können.

... weil du diese Namen dann als Variablennamen verwendest.

Zitat:
Gibts da keine methode das machen zu können?

Die direkte Methode wäre eval . Das ist aber schwer zu lesen und zu debuggen.
Zitat:

ich hab nämlich ca 30 von den dateien und da wäre eine schleife zum rauskopieren der vektoren einfach sehr praktisch anstatt das für jeden datensat einzeln zu machen Smile

Dann versuch doch mal meinen Vorschlag? Das kannst du ja in die for-Schleife einbauen.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 29.04.16
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 30.04.2016, 10:13     Titel:
  Antworten mit Zitat      
alles klar leuchtet mir nach drüber schlafen jetzt auch ein Very Happy

Wie ich allerdings deine Idee in eine Schleife bringen soll, entzieht sich leider meiner Vorstellungskraft.
Du hast ja einfach eine Variable mit dem entsprechendem Namen angelegt, wie soll ich da dann mittels schleife die anderen Dateinamen rein bekommen?
das wäre doch wieder über einen Vektor mit zählvariable?

sorry meine Programmierkenntnisse sind nicht sonderlich ausgereift Sad


LG
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 30.04.2016, 19:57     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
das wäre doch wieder über einen Vektor mit zählvariable?

Ja, dagegen spricht ja auch nichts, sondern gegen die Variierung von Variablennamen.

Also etwas der Form
Code:
Matrix = [];
Name={'Datei1';'Datei2';'Datei3'};
for ii=1:1:3
      Matrix=Matrix[:, data.(Name{ii}).Vektor1];
end


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

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 29.04.16
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 01.05.2016, 17:33     Titel:
  Antworten mit Zitat      
Vielen Dank genau das wollte ich machen, hab mich aber wohl etwas unklar ausgedrückt Confused

und jetzt weiß ich aus warum es bei mri nciht funktioniert hat, hatte bei dem Zugriff nur runde klammern anstatt geschwungenener Embarassed Confused


LG HaveIT
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 - 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.