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

Automatisierter Zugriff auf nummerierte Variable

 

PeterK
Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 23.12.13
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 02.08.2015, 22:21     Titel: Automatisierter Zugriff auf nummerierte Variable
  Antworten mit Zitat      
Hallo alle zusammen,

ich habe ein Problem, welches ich bissher immer immer manuel löste, aber das muss doch auch irgendwie automatisch gehen.

Ein Datensatz von mir besteht aus vielen einzelnen Variablen die benannt sind mit Y1, Y2, Y3, Y4, Y5, ......

Mit jeder Variablen möchte ich die selbe Operation durchführen, daher würde sich eine for-schleife anbieten, in welcher ich die Nummer im Variablen-Namen hochzähle... also in der Art:

for i=1:200

Y_mean(i)=mean(Y[string2num 'i'])

end

Die Syntax ist natürlich falsch, aber ich hoffe die Idee ist verständlich.

Weiß jemand von euch, wie man soetwas bewerkstelligen kann?
Private Nachricht senden Benutzer-Profile anzeigen


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 02.08.2015, 23:00     Titel:
  Antworten mit Zitat      
genau das ist der grund warum es eine schlechte idee ist einen index im namen zu verstecken. es ist aufwändig ihn da rein zu bekommen und am ende noch aufwendiger ihn da wieder rauszubekommen. ich würde dir also wärmstens empfehlen garnicht erst so eine schlechte datenstruktur anzulegen sondern gleich bei der erzeugung der daten anzusetzen und das in einem ordentlichen format zu machen. dazu bieten sich zb cell arrays an oder auch wenn alle variablen gleich groß sind einfach eine zusätliche dimmension im array.
falls das nicht geht musst du einen umständlichen weg über eval wählen. das ist aber nicht sehr schön.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
PeterK
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 23.12.13
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 03.08.2015, 08:50     Titel:
  Antworten mit Zitat      
Hallo Window,

leider bekomme ich die Daten in ihrer Ursprungsform als txt-Dateien. Wenn es eine Möglichkeit gibt, die txt-Dateien gleich in ein cell-array einzulesen, dann wäre mir das auch lieber.

Aber dann bleibt das Problem, dass ich die ganzen txt-Dateien irgendwie einlesen muss. Und dann habe ich doch ein ziemlich ähnliches Problem, dass die txt-Dateien einen Index im Namen haben, welchen ich hochzählen muss um die Daten nach und nach automatisch in einer for-Schleife einzulesen.

Das löst das Problem also nicht wirklich, oder gibt es beim Einlesen von txt-Dateien eine bessere Möglichkeit den Index hochzuzählen als bei Namen von Variablen?
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: 03.08.2015, 09:18     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
gibt es beim Einlesen von txt-Dateien eine bessere Möglichkeit den Index hochzuzählen als bei Namen von Variablen?

Ja. Wie von Winkow gesagt, z.B. ein Cell Array.

Wenn du den momentan zum Einlesen verwendeten Code postest, kann man dir einen konkreten Verbesserungsvorschlag machen.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 23.12.13
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 03.08.2015, 09:39     Titel:
  Antworten mit Zitat      
Das Einlesen der txt-Dateien habe ich bisher auch einzeln von Hand (also über den Importmanager von Matlab) gemacht... war eine ziemliche Arbeit Smile

Könnte ihr mir einen kurzen Tip geben, mit welcher Funktion das Einlesen von txt-Files am einfachsten geht? In den Files sind zwei Zahlen Spalten enthalten, durch ein Tab getrennt.
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: 03.08.2015, 10:26     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Das Einlesen der txt-Dateien habe ich bisher auch einzeln von Hand (also über den Importmanager von Matlab) gemacht...

Unter dem grünen Haken zum Importieren ist ein Dropdown. Damit kannst du ein Skript oder, zum Variieren des Dateinamens noch besser, eine Funktion zum Importieren der Daten generieren.
Falls du eine Funktion verwenden möchtest, bieten sich textscan oder dlmread an.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 23.12.13
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 03.08.2015, 14:15     Titel:
  Antworten mit Zitat      
Ach, das Drop-Down Menü mit der Option zum generieren eines Skriptes hatte ich gar nicht gesehen. Aber es funktioniert hervorragend Smile

Ichh habe dieses automatisch generierte Skript nun in eine Unterfunktion ausgelagert, welchem ich den Namen der zu ladenden Datei übergebe. Diese Unterfunktion habe ich in einer for-Schleife laufen, und jeder Schleifendurchgang speichert mir die ausgelesenen Daten in ein Cell-Aray.

Vielen Dank für eure 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 - 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.