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

String, der keiner ist - ich bin verwirrt

 

Shin
Forum-Century

Forum-Century


Beiträge: 117
Anmeldedatum: 12.11.09
Wohnort: Karlsruhe
Version: ---
     Beitrag Verfasst am: 30.06.2010, 14:50     Titel: String, der keiner ist - ich bin verwirrt
  Antworten mit Zitat      
edit:

mh ok, das mit eval(x,1) ist wohl echt quatsch, grad ein paar Dinge durchprobiert, eval(x) geht genauso. Keine Ahnung wieso ich das so habe.


Jedenfalls, wie bekomm ich es hin, dass ich meine Matrix a in z.B. time umbenenne, wenn t 'time' als String enthält? :x
Daran häng ich momentan noch.



Hallo Leute,
hänge grad mal wieder kurz vor Ende. Das ist mir jetzt leider unerklärlich.
Ich will ein String mit eval verwenden, aber Matlab gibt mir die Fehlermeldung, dass der Inhalt meiner Variable kein String ist.
Weil der Inhalt aber ein String ist, habe ich mir eine if-Funktion mit isstr-Check gemacht, trotzdem gibt er mir dann die Fehlermeldung aus, dass der Inhalt kein String ist - OBWOHL die if-Abfrage das Gegenteil bestätigt.

Code:
   
strcheck = isstr(t);
if strcheck == 1
     test= eval(t,1);
     assignin('base', 'a', test);
             else
                 b = 0
                 assignin('base', 'b', b);
end
 


t = 'time'

Fehlermeldung:
??? Error using ==> eval
Argument must contain a string.

Error in ==> loadselected1 at 45
test= eval(t,1);

(Zeile 45 in dem Fall Zeile 3)

Ist das ein Denkfehler meinerseits? Was mach ich falsch?


Ich glaub ich muss mal 'ne Pause machen. >.<

Gruß und Dank.

Zuletzt bearbeitet von Shin am 30.06.2010, 15:43, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen


michai
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 83
Anmeldedatum: 22.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.06.2010, 14:53     Titel:
  Antworten mit Zitat      
Hi Shin!

1. Was steht denn in "t"?
2. Was willst mit eval() genau machen?
3. ist eval(t,1) schon syntaktisch falsch, auch wenn in t was sinnvolles steht. eval() erwartet nur einen Übergabeparameter.

Schöne Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Shin
Themenstarter

Forum-Century

Forum-Century


Beiträge: 117
Anmeldedatum: 12.11.09
Wohnort: Karlsruhe
Version: ---
     Beitrag Verfasst am: 30.06.2010, 15:07     Titel:
  Antworten mit Zitat      
Hallo,
also, das Ganze habe ich hier schonmal angewendet:
Code:
ph11 = evalin('base','p111');
ahx11= eval(ph11,1);
assignin('base', 'PlotVar4c',ahx11);
assignin('base', 'PlotVar4cName',ph11);


Erklärung dazu:
p111 hat beispielsweise, wenn des vom Benutzer so ausgewählt wurde, den Value 'QA_OL_Akt', der Name einer Matrix die im Workspace vorhanden ist. Da der Name immer variabel ist, greife ich mit meinem fixen "p111" auf die variable Variable Rolling Eyes (in dem Fall eben QA_OL_Akt) zu.

ph11 = evalin('base','p111');
Damit hol ich mir die p111 in den Workspace meiner GUI Pushbutton Funktion

ahx11= eval(ph11,1);
Damit wird ahx11 zur Matrix mit dem gleichen Inhalt wie die Matrix, deren Name in ph11 gespeichert ist.


So in der Art will ich das beim im ersten Post genannten Problem auch verwenden - dort habe ich den Namen meiner Matrix in t und eine Variable a, die in den Inhalt von t umbenannt werden soll.


edit:
mh ok, das mit eval(x,1) ist wohl echt quatsch, grad ein paar Dinge durchprobiert, eval(x) geht genauso. Keine Ahnung wieso ich das so habe.

Jedenfalls, wie bekomm ich es hin, dass ich meine Matrix a in z.B. time umbenenne, wenn t 'time' als String enthält? :x
Daran häng ich momentan noch.
Private Nachricht senden Benutzer-Profile anzeigen
 
Maddy
Ehrenmitglied

Ehrenmitglied



Beiträge: 494
Anmeldedatum: 02.10.08
Wohnort: Greifswald
Version: ---
     Beitrag Verfasst am: 30.06.2010, 16:33     Titel:
  Antworten mit Zitat      
Code:

t='time';
eval([t '=a']);
 

_________________

>> why
The computer did it.
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.