|
|
|
Funktion aufrufen aus Variable |
|
| marie93 |

Forum-Anfänger
|
 |
Beiträge: 41
|
 |
|
 |
Anmeldedatum: 15.06.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 07.11.2011, 09:54
Titel: Funktion aufrufen aus Variable
|
 |
Hallo Leute,
ich brauch eure Hilfe.
Ich habe ein Excel-File, wo nacheinander 64 Funktionsnamen aufgelistet sind. Diese Funktionen sollen nacheinander, durch drücken eines Button in einem GUI aufgerufen werden. Jedesmal wenn der Button gedrückt wird, wird der nächste Funktionsname aus dem Excelsheet gelesen und in einer Variablen gespeichert.
---> Wie schaffe ich es nun, dass die Funktion aufegrufen wird, also im Prinzip aus der Variable einen "Funktionsaufruf" mache ? Irgendwie mit "function"
Bsp, auslesen von Programmname und zu übergebendes Argu,ment aus dem Excelsheet und nun ...????:
[Argument, Programm] = xlsread('Test.xls', 'Test', 'A2:B2')
Danke !!!
Eurer Marie93
|
|
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 07.11.2011, 10:46
Titel:
|
 |
Hallo,
du wirst in dem Fall nicht um EVAL herumkommen. Allerdings wirst du sehr darauf achten müssen, dass der Aufruf auch vernünftig klappt.
Vorsicht im übrigen: xlsread gibt im ersten Argument alle numerischen Daten und im zweiten Argument alle Textdaten zurück. Das wird also zu einem Problem führen, falls dein Eingabeargument nicht numerisch ist.
Wie du auch an dem Code siehst, wird das mehr oder weniger Stückwerk werden. Es wäre also zu überlegen, die Strategie hier abzuändern (sofern das möglich ist).
Grüße,
Harald
|
|
|
|
| marie93 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 41
|
 |
|
 |
Anmeldedatum: 15.06.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 07.11.2011, 11:13
Titel:
|
 |
Danke, jedoch funtioniert es nicht, vielleicht verstehe ich die Syntax auch nicht richtig
Durch einen Button wird die folgende Funktion ausgelöst:
Wodurch ich einlese:
Argument =
4
22
4
22
Programm =
'' 'play_mono'
'' 'play_ebene'
'' 'play_mono'
'' 'play_ebene'
und die Funktion:
play_ebene(4)
aufegrufen werden sollte.
Theoretisch müsste doch nun eine msgbox erscheinen mit dem Wert "4".
oder etwas nicht ?
Eure Marie93
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 07.11.2011, 11:35
Titel:
|
 |
Hallo,
und was passiert? gibt es eine Fehlermeldung? Welche? Auf den ersten Blick sehe ich nur, dass du Programm wohl als Cell Array indizieren solltest, also
Grüße,
Harald
|
|
|
|
| marie93 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 41
|
 |
|
 |
Anmeldedatum: 15.06.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 07.11.2011, 16:11
Titel:
|
 |
Hallo,
ich hatte den Fehler:
??? Undefined function or method 'eval' for input arguments of type 'cell'.
bekommen.
Wenn ich es nun so wie du bschreiben hast aktualisiere, bekomme ich den Fehler:
??? Error: The input character is not valid in MATLAB statements or expressions.
Error in ==> GUI_Proband_2>pbEbene_Callback at 167
eval([ Programm{2,2} '(' Argument(2,1) ');']); % {} bedeuten Cell-Array
Gruß
marie93
|
|
|
|
| marie93 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 41
|
 |
|
 |
Anmeldedatum: 15.06.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 07.11.2011, 16:24
Titel:
|
 |
Ha, ich weiß nun woran es lag:
der eval Befehl darf nur Daten vom Typ String beinhalten, wodurch ich die Variable Argumente noch von Integer in String umwandeln musste:
Dank.
Eure Marie93
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 07.11.2011, 16:30
Titel:
|
 |
Hallo,
so sollte es gehen.
Mich wundert allerdings, dass du in das Element 2,2 indizierst, obwohl es ein Vektor zu sein scheint.
Wie du siehst, ist der Code so sehr mühsam, unübersichtlich und schwer nachvollziehbar. Ich würde also nochmal empfehlen, einen anderen Weg zu suchen.
Grüße,
Harald
|
|
|
|
|
|
|
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.
|
|