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 einem Array heraus aufrufen..

 

eminence
Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 15.12.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.08.2011, 18:19     Titel: Variablen aus einem Array heraus aufrufen..
  Antworten mit Zitat      
Hey,
ich würde gerne einen Array mit einer Reihe von Variablen (task_a, task_b, ...) füllen und dann in einer Schleife die einzelnen Array-Elemente bzw. Variablen an eine Funktion übergeben..
Könnt ihr mir da einen Hinweis geben, wie ich es schaffe, dass Matlab die Array-Elemente als Variablen erkennt und nicht bloß als char?
Vielen Dank
Micha
Private Nachricht senden Benutzer-Profile anzeigen


eminence
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 15.12.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.08.2011, 20:19     Titel:
  Antworten mit Zitat      
Code:

function robot()
global Task_a Task_b Task_c Task_d Task_e

liste = {'Task_a'; 'Task_b'; 'Task_c'; 'Task_d'; 'Task_e'};

 for i=1:5
    s=cell2str(liste(i));
    spektrum(s)
 end
 

so hatte ich mich das gedacht, klappt aber nicht.. :/
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 22.08.2011, 20:33     Titel:
  Antworten mit Zitat      
Sorry...aber ich verstehe nicht was dein Ziel ist. Geht es nur um die Strings, oder sind das die Namen von Variablen bzw. Arrays?

Mal abgesehen, dass es cell2str nicht gibt, macht es doch gar keinen Sinn.
Die Inhalte der Zellen sind doch strings.

Du kannst doch auch die Liste auch als chararray anliegen

Code:
liste = ['Task_a'; 'Task_b'; 'Task_c'; 'Task_d'; 'Task_e'];
...

spektrum(liste(i))
 
Private Nachricht senden Benutzer-Profile anzeigen
 
eminence
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 15.12.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.08.2011, 20:41     Titel:
  Antworten mit Zitat      
hey,
du hast recht cell2str ist keine generische Matlabfunktion sondern von einem netten Menschen selbst gecoded und zur Verfügung gestellt worden :/
mir geht es darum, dass ich nacheinander eine funktion in einer Schleife aufrufe und immer eine andere Variable übergebe.. Halt die nächste aus der Liste..
das Problem ist, dass Matlab die Variablen als solche nicht mehr erkennt sondern nur chars..
ich hoffe ich konnte die problemlage ungefähr eingrenzen ..
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 22.08.2011, 21:06     Titel:
  Antworten mit Zitat      
Danke für die ungenaue Beantwortung meiner Fragen...ich rate jetzt mal weiter.

Du hast Datenarrays mit dem Namen Task_a usw.

Code:

Task_a = [0, 1, 2];
Task_b = [5, 6, 7, 8, 9];
% schreibt die Daten der einzelnen Arrays in eine gesamten cell-liste
liste = {Task_a, Task_b}
liste(1) % alle Daten von Task_a
 


Die Namen der einzelnen Datenarrays sind in der Liste nicht mehr bekannt. Wenn das gewünscht ist, arbeitest du am Besten mit einer Struktur:

Code:

data(1).dateiname = 'Task_a';
data(1).values = [];
data(2).dateiname = 'Task_b';
data(2).values = [];
 


Es gibt zwar auch den Befehl evalin() um von einem Var.-Namen dessen Daten aus dem Workspace zu bekommen, aber davon ist abzuraten.
Private Nachricht senden Benutzer-Profile anzeigen
 
eminence
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 15.12.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.08.2011, 21:13     Titel:
  Antworten mit Zitat      
Danke für die unfreundliche Hilfe; es hat geklappt.
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 22.08.2011, 21:21     Titel:
  Antworten mit Zitat      
Was bin ich doch für ein Unmensch...sorry für das OT

Ich kann leider nicht deine Gedanken lesen. Aus deiner Beschreibung war für mich nicht ersichtlich, dass es sich um Datenarrays handelt, da du nur deren Namen angeben hast. Ich habe explizit danach gefragt:

Zitat:
Geht es nur um die Strings, oder sind das die Namen von Variablen bzw. Arrays?


Ich finde es nicht zu viel verlangt, auf die Fragen der Helfenden einzugehen und sie so präzise wie möglich zu beantworten. Da kann man sich nämlich oft viele Posts sparen, die nur auf Grund fehlender Infos oder Missverständnissen beruhen. Das kostet nicht nur dich sondern auch den Helfenden Zeit.

Sorry...wenn ich da etwas sarkastisch einen Hinweis geben habe...schau doch bitte mal bei Gelegenheit in den goMatlab-Knigge.
Private Nachricht senden Benutzer-Profile anzeigen
 
eupho
Forum-Meister

Forum-Meister


Beiträge: 777
Anmeldedatum: 07.01.09
Wohnort: Marburg
Version: R2009b
     Beitrag Verfasst am: 22.08.2011, 21:33     Titel:
  Antworten mit Zitat      
eminence hat Folgendes geschrieben:
Danke für die unfreundliche Hilfe; es hat geklappt.


Da ist aber jemand dankbar dafür, dass er trotz unpräziser Fragestellung und Nichtbeantwortung von Rückfragen noch geholfen bekommt.
Private Nachricht senden Benutzer-Profile anzeigen
 
eminence
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 15.12.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.08.2011, 22:18     Titel:
  Antworten mit Zitat      
Ich halte mich da leiber an den normalen knigge und normale Umgangsformen. Schön, dass du Sarkasmus verstehst und bedankt habe ich mich ja doch auch.
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 23.08.2011, 00:38     Titel:
  Antworten mit Zitat      
Hallo DSP,

Dein Lösungsvorschlag ist hilfreich und sachdienlich. Er löst nicht nur die Frage, sondern zeigt gelichzeitig noch einen Weg effizient und zuverlässig zu programmieren.

Es ist häufig für Fragende schwer, die Rückfragen genau zu beantworten. Wenn ihnen die zugrundeliegende Problematik ganz klar wäre, würden sie meistens die Fragen alleine lösen können. Die Antwortenden verfügen ja auch nicht über magisches Geheimwissen, sondern habe einfach nur mehr Erfahrung mit MATLAB und erkennen schneller, welche Informationen wichtig und brauchbar sind - den Rest beantwortet HELP und DOC dann schnell.

Viele Grüße, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 23.08.2011, 11:02     Titel:
  Antworten mit Zitat      
Hallo Jan,

deine Aussage ist im Kern vollkommen richtig, aber für dieses Thread hier kann ich dir nicht ganz zustimmen. Ich denke schon, dass meine einfache Frage auch ohne Matlabkenntnisse beantwortbar ist. Ich gehe immer davon aus (wenn nicht explizit etwas anderes erwähnt wird), dass die geposteten Zeilen selbst verfasst worden sind. Daher sollte auch klar sein, ob hinter den Namen Task_xy z.B. Daten für neue Koordinaten stehen, oder es hier ausschließlich um den String (Namen) geht. Eminence hätte ja sonst auch erklären können, was die Funktion Spektrum für Inputs übergeben bekommen soll....da wäre es wohl auch eindeutiger gewesen.

Gruß DSP
Private Nachricht senden Benutzer-Profile anzeigen
 
eminence
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 15.12.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.08.2011, 11:41     Titel:
  Antworten mit Zitat      
Was mir einfach nicht schmeckt, ist die herablassende Art und Weise in der du geantwortet hast. Der Ton macht die Musik und es ist sicher nicht so, dass ich deine Fragen extra nicht beantworte. Und wenn ich mich nicht so ausdrücken kann wie jemand der schon länger mit Matlab gearbeitet hat, dann mag das sein ist mir aber kaum anzulasten..
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.