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

Variablennamen automatisch generieren und verwenden

 

munich
Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 05.05.10
Wohnort: ---
Version: R2010a
     Beitrag Verfasst am: 05.05.2010, 13:31     Titel: Variablennamen automatisch generieren und verwenden
  Antworten mit Zitat      
Hey Leute,
ich habe folgendes Problem:
Ich habe eine Reihe von Variablen, deren Namen eine Zahl enthalten, die immer um den gleichen Betrag hochgezählt wird. Das soll ein Skript nun automatisch tun, für jede Variable eine Funktion auswerten und die Ergebnisse dann in eine Matrix schreiben.
Die Variablennamen inklusive der Zahl erzeuge ich als Strings. Wenn ich nun aber die Funktion per Skript mit dem String aufrufe bekomme ich andere Ergebnisse, als wenn ich die Funktion direkt mit dem Variablennamen im Command Window aufrufe.
Ist das ein bekanntes Problem? Wenn ja, wie ist es zu lösen?
Vielen Dank,
munich
Private Nachricht senden Benutzer-Profile anzeigen


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 05.05.2010, 13:45     Titel:
  Antworten mit Zitat      
Hallo,

Bitte Beispiele deiner Aufrufe posten, und wenn möglich auch die Funktion die du aufrufst. Denn im Moment blicke ich nicht durch, was du meinst.
Private Nachricht senden Benutzer-Profile anzeigen
 
munich
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 05.05.10
Wohnort: ---
Version: R2010a
     Beitrag Verfasst am: 05.05.2010, 14:46     Titel:
  Antworten mit Zitat      
Hey,
danke schonmal für deine Antwort!

Es sieht folgendermaßen aus:
Ich habe eine funktion beameval, was die genau macht ist ja unwichtig. Der übergebe ich den Namen einer Variable und sie gibt mir dann einen 4er Zeilenvektor zurück.
Nun habe ich eine Liste von Variablen, die ich gerne der Reihe nach mit beameval auswerten würde. Die zurückgegebenen 4er Vektoren sollen dann als Spalten einer Matrix gespeichert werden. Zusätzlich kommt in die erste Zeile noch der Laufindex im Variablennamen.

Hier mein Code dafür:

Code:

n=(zmax-zmin)/dz+1;
    re=zeros(5,n);
    for i=1:1:n
        z=zmin+(i-1)*dz;
        varname=['smx' measurement '_' num2str(z) 'um'];
        re(:,i)=[z;beameval(varname)'];
    end
 


Zunächst wird die Größe der Outputmatrix bestimmt, wobei zmax und zmin Maximum und Minimum des Laufindex in der Variablen sind, dz ist das Inkrement des Laufindex. measurement ist der Name/die Nummer der Messung.

Das Problem ist nun, dass ich, wenn ich beameval über das Skript aufrufe ganz andere Werte in der Matrix bekomme, als wenn ich beameval direkt mit dem Variablennamen im Command Window aufrufe...

Hoffe du kannst mir da weiterhelfen!
Danke,
munich
Private Nachricht senden Benutzer-Profile anzeigen
 
munich
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 05.05.10
Wohnort: ---
Version: R2010a
     Beitrag Verfasst am: 05.05.2010, 15:13     Titel:
  Antworten mit Zitat      
Aaaaah, die Lösung:
Matlab versucht die Funktion im Workspace des m-files auszuführen und nicht in meinem normalen base workspace. Deshalb muss ich ihm das sagen:
Code:
evalin('base',varname)
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.