|
hotsauce |
Forum-Anfänger
|
|
Beiträge: 14
|
|
|
|
Anmeldedatum: 06.03.09
|
|
|
|
Wohnort: Sindelfingen
|
|
|
|
Version: R2007B
|
|
|
|
|
|
Verfasst am: 05.04.2009, 14:08
Titel: Problem mit exist
|
|
Hallo zusammen
jetzt würde ich in eine callback überprüfen,ob in Workspace eine bestimmte Variable steht,und zwar diese Variable ist von eine andere callback.
und damals mit Befehl 'assignin('base','V1',V1)' nach Workspace zugefügt.
wenn ich in callback B schreibe
if exist('V1')
dann wird immer '0' zurückgegeben
was ist los? wie kann man es richtig machen?
danke euch!!
|
|
|
|
|
josekamara |
Forum-Meister
|
|
Beiträge: 529
|
|
|
|
Anmeldedatum: 26.04.08
|
|
|
|
Wohnort: München
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 05.04.2009, 16:51
Titel:
|
|
Es hängt immer davon ab, was der Parameter von exist ist. Ich empfehle Ihnen diesen Befehl:
_________________
Simulation
|
|
|
spawnferkel |
Forum-Fortgeschrittener
|
|
Beiträge: 53
|
|
|
|
Anmeldedatum: 11.03.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 05.04.2009, 18:28
Titel:
|
|
guckt auch nur im Workspace der Funktion, in der es aufgerufen wird; in deinem Fall also in callback B.
Du kannst
benutzen, um im Base Workspace zu arbeiten:
|
|
|
hotsauce |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 14
|
|
|
|
Anmeldedatum: 06.03.09
|
|
|
|
Wohnort: Sindelfingen
|
|
|
|
Version: R2007B
|
|
|
|
|
|
Verfasst am: 05.04.2009, 19:36
Titel:
|
|
hey,danke spawnferkel!! es funtionert!!cool!
evalin und exist zusammen,was für eine schöne kombination!
danke!
|
|
|
Jazzer |
Forum-Anfänger
|
|
Beiträge: 15
|
|
|
|
Anmeldedatum: 28.03.10
|
|
|
|
Wohnort: HH
|
|
|
|
Version: 2009b 32bit
|
|
|
|
|
|
Verfasst am: 19.05.2010, 10:47
Titel:
|
|
spawnferkel hat Folgendes geschrieben: |
|
Das funktioniert schon mal ganz gut.
Nur was macht man wenn V1 ein variabler Variablenname ist?
z.B.:
und das ganze jetzt so ausführen dass im Base-Workspace geschaut wird.
Einer ne Idee???[/code]
|
|
|
Germanus |
Forum-Anfänger
|
|
Beiträge: 32
|
|
|
|
Anmeldedatum: 15.12.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 7.8.0 (R2009b), Linux
|
|
|
|
|
|
Verfasst am: 09.12.2010, 20:14
Titel:
|
|
Hallo,
auch wenn die Frage schon etwas länger her ist, will ich hier mal einen möglichen Lösungsansatz aufzeigen, denn auch ich hatte heute das gleiche Problem...
und dann mit folgender Funktion prüfen:
Der "Trick" besteht im Zusammensetzen eines strings mittels den eckigen Klammern, also [] und Kommata, sowie den dreifachen Einfachanführungszeichen.
Achtung bei der Verwendung von "return" verlässt man allerdings nicht die Funktion sondern wandert vom 'base' zurück in den Funktionsarbeitsspeicher.
MFG,
Germanus
|
|
|
Fragender |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.10.2012, 17:30
Titel: Frage zu evalin in Kombi mit exist
|
|
Hallo zusammen,
die Kombination von Germanuns mit evalin und exist:
funktioniert bei mir super.
Allerdings komm ich nicht dahinter, was denn die einzelnen
Kommata bewirken bzw. zu bedeuten haben.
Es wäre super wenn mir jemand diese eine Zeile Code erklären könnte.
Viele Grüße
|
|
|
Germanus |
Forum-Anfänger
|
|
Beiträge: 32
|
|
|
|
Anmeldedatum: 15.12.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 7.8.0 (R2009b), Linux
|
|
|
|
|
|
Verfasst am: 16.10.2012, 18:41
Titel:
|
|
|
|
|
Hallo,
also auf die Nachfrage, wie der Code zu verstehen sei:
1.) Im Forum wird der Quelltext falsch editiert dargestellt (Farben). Wenn man den Quelltext nach Matlab kopiert, sieht man, dass das myVar aus der eckigen Klammer (also letzte Zeile) schwarz wird. Dies ist vielleicht der schlüssel zum Verständniss.
2.) Wenn der Durchblick bei solchen Kombinationen von Befehlen fehlt, empfehle ich, wie auch für diesen Fall den Debugger. Ein roter Punkt vor die letzte Zeile und dann im gehaltenen Modus die eckige Klammer sammt Inhalt in der Komandozeile ausgeführt ergibt folgende Ausgabe:
3.) Zum Grundverständnis für die Bausteine der Funktion mal folgende Erläuterungen in eigenen Worten evalin braucht einen "Arbeitsbereich" und eine "Arbeitsanweisung", sprich "ich sage dir jetzt, dass du später draußen den Müll in die Tonne XY werfen musst...". Diese Arbeitsanweisung muss als String übergeben werden ("Schreibe dir auf, was du tun musst, damit du es dann später vom Zettel ablesen kannst") Solche Strings können mit eckigen Klammern aus Teilstrings zusammengesetzt werden, sprich str_ges = [str_1,str_2]. Und nun muss in diesen string noch ein "dynamisches" Element, also eine Variable enthalten sein. Dies klappt nur mittels Anführungszeichen innerhalb des strings. Verständlich wird das Ganze, wenn man sich folgende Beispiele anschaut:
und
. Das doppelte Anführungszeichen wird innerhalb eines durch Anführungszeichen gekennzeichneten Strings zum Anführungszeichen. So jetzt dürften alle Klarheiten beseitigt sein oder?
MFG,
Germanus
|
|
|
Fragender |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 17.10.2012, 09:51
Titel: Frage zu evalin in Kombi mit exist
|
|
Hallo Germanus,
erst einmal vielen Dank für die schnelle und ausführliche Antwort.
Tolles Forum hier. Ich werde mich auch anmelden.
Mir sind nun prinzipiell auch fast alle Punkte klar geworden.
Was ich allerdings immer noch nicht verstehe, sind die Kommas
direkt vor und nach
Wenn man mir hier noch auf die Sprünge helfen könnte.
Viele Grüße
Fragender
|
|
|
Germanus |
Forum-Anfänger
|
|
Beiträge: 32
|
|
|
|
Anmeldedatum: 15.12.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 7.8.0 (R2009b), Linux
|
|
|
|
|
|
Verfasst am: 17.10.2012, 13:42
Titel:
|
|
Hallo Fragender,
Die Kommas in den eckigen Klammern folgen den gängigen Konventionen von Vektoren in Matlab, d.h. es gibt Zeilenvektoren (getrennt durch komma)
und Spaltenvektoren (getrennt durch semikolon)
Argumente sind in diesem Fall einfach strings also Text im Falle des Zeilenvektors werden alle Teiltexte zu einem gesammten zusammengebaut. In unserem Fall also
ist ein zusammengesetzter String sprich
wobei gilt:
ergibt exist('
<- also z.B. myVar = 'k' und ergibt k
ergibt ')
Durch die eckige Klammer gibt die Aneinanderreihung folglich wie schon in meinem vorangegangenen Beispiel unter 2. gesagt und hier nun im Detail erläutert: exist('k')
qed
MFG,
Germanus
P.S.: Um fit mit dem Ganzen zu werden empfehle ich einfach mal meine Beispielfragmente in die Komandozeile zu kopieren und dort auszuführen. Viel Spaß.
|
|
|
Fragender |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.10.2012, 13:37
Titel: Frage zu evalin in Kombi mit exist
|
|
Hallo Germanus,
nun hab ich es begriffen.
Viele Dank für die ausführliche Erklärung.
Viele Grüße
Fragender
|
|
|
|
|
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.
|
|