|
|
Automatisierter Zugriff auf nummerierte Variable |
|
PeterK |

Forum-Anfänger
|
 |
Beiträge: 27
|
 |
|
 |
Anmeldedatum: 23.12.13
|
 |
|
 |
Wohnort: Hamburg
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.08.2015, 22:21
Titel: Automatisierter Zugriff auf nummerierte Variable
|
 |
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?
|
|
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 02.08.2015, 23:00
Titel:
|
 |
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
|
|
|
PeterK |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 27
|
 |
|
 |
Anmeldedatum: 23.12.13
|
 |
|
 |
Wohnort: Hamburg
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 03.08.2015, 08:50
Titel:
|
 |
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?
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 03.08.2015, 09:18
Titel:
|
 |
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
|
|
|
PeterK |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 27
|
 |
|
 |
Anmeldedatum: 23.12.13
|
 |
|
 |
Wohnort: Hamburg
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 03.08.2015, 09:39
Titel:
|
 |
Das Einlesen der txt-Dateien habe ich bisher auch einzeln von Hand (also über den Importmanager von Matlab) gemacht... war eine ziemliche Arbeit
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.
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 03.08.2015, 10:26
Titel:
|
 |
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
|
|
|
PeterK |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 27
|
 |
|
 |
Anmeldedatum: 23.12.13
|
 |
|
 |
Wohnort: Hamburg
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 03.08.2015, 14:15
Titel:
|
 |
Ach, das Drop-Down Menü mit der Option zum generieren eines Skriptes hatte ich gar nicht gesehen. Aber es funktioniert hervorragend
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!
|
|
|
|
|
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.
|
|