|
|
Variablen zur Laufzeit generieren |
|
eisvogel_2 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.04.2010, 23:26
Titel: Variablen zur Laufzeit generieren
|
 |
Hallo zusammen,
leider weiß der Code erst zur Laufzeit, wie viele verschiedene Variablen eine Funktion auswerfen werden. Wie kann ich sicherstellen, dass sie auch aufgenommen werden? Und ich nicht die Fehlermeldung von MatLab bekomme:
Fehlermeldung:
??? Error using ==> mysql
Must give one output argument for each column
Mein bisheriger Code:
Ich weiß, dass alle von 'mysql' ausgeworfenen Variablen genau gleich lang sind und letztendlich sollen sie eh in genau eine Matrix.
Workaround mit Bauchschmerzen:
Klar, wenn ich zur Zeit, wo ich den Code programmiere genau wüsste, dass 'mysql' z.B. genau drei Variablen a,b,c auswerfen wird, so könnte ich den folgenden Code schreiben:
Es wäre wunderbar, wenn mir jemand einen Tipp geben könnte, wie ich mein Problem vermeiden und alle ausgeworfenen Variablen (bzw. ihren Inhalt) in eine große Matrix zusammenfügen könnte.
Es dankt,
eisvogel_2
|
|
|
|
|
Epfi |

Forum-Meister
|
 |
Beiträge: 1.134
|
 |
|
 |
Anmeldedatum: 08.01.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 26.04.2010, 09:21
Titel:
|
 |
Wenn die Variablen alle gleich lang sind, kannst Du doch einfach per size die Zeichen zählen lassen und daraus folgern, wie viele Variablen zurückgekommen sind.
|
|
|
eisvogel_2 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 26.04.2010, 11:25
Titel:
|
 |
|
 |
|
Hallo Epfi,
vielen Danke für Deine schnelle Antwort; die Anzahl der Variablen, die zurückkommen werden, ist dem Code zur runtime kurz vorher bereits bekannt. Leider scheint mir das Vokabular zu fehlen mein Problem eindeutig zu beschreiben. Tut mir leid.
Kurz bevor mein Code die Funktion aufruft, weiß er, wie viele unterschiedliche Variablen (a,b,c,d, ...) der gleichen Länge zurückgegeben werden. Die Daten, die von der Funktion 'mysql' kommen, scheinen zu erwarten, dass mehrere Variablen quasi als Auffangsvariablen zur Verfügung stehen. Stelle ich nur eine Variable zur Verfügung, wie hier gezeigt, so bekomme ich eine Fehlermeldung:
Soll heißen, wenn 'nNumberOutputVar' z.B. gleich vier wäre, so müsste die korrekte nächste Codezeile lauten:
... wäre 'nNumberOutputVar' jedoch nur gleich zwei, so müsste die korrekte nächste Codezeile lauten:
Wie kann ich also eine bestimmte Anzahl an Variablen zur Laufzeit generieren, von der ich zur Zeit des Schreibens des Codes, gar nicht weiß, wie viele es werden? Letztendlich würde ich diese Variablen sowieso wieder zu einer großen Matrix zusammenfügen müssen. Wie oben beschrieben kann ich jedoch nicht nur eine Variable 'cMySQLImprt' dafür abstellen.
Ein dankt für die Mühe,
eisvogel_2
|
|
|
Epfi |

Forum-Meister
|
 |
Beiträge: 1.134
|
 |
|
 |
Anmeldedatum: 08.01.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 26.04.2010, 11:49
Titel:
|
 |
Ahh, verstehe :)
Du kannst mit Hilfe der Funktion eval() einen String als Matlab-Befehl ausführen lassen. Das heißt, Du erstellst Dir zunächst einen String, in dem dein Befehl steht, wirfst den auf eval() und dann wird er ausgeführt.
Damit kannst Du den Befehl mit so vielen Output-Variablen, wie benötigt zusammenstöpseln und anschließend ausführen.
|
|
|
eisvogel_2 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 26.04.2010, 12:05
Titel:
|
 |
Oh, super, ich glaube, das ist genau das, was ich suche!
So, jetzt lese ich mir die techn. Anleitung dazu noch einmal genau durch und versuche es dann zu implementieren. Ja, das sollte klappen!
Vielen lieben Dank für Deine Hilfe,
eisvogel_2
|
|
|
|
|
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.
|
|