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

Funktionsauswahl

 

hassel
Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 11.11.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.02.2016, 14:48     Titel: Funktionsauswahl
  Antworten mit Zitat      
Hallo,

ich denke, meine Frage stellt für die meisten keine große Herausforderung dar, aber mir fällt keine Lösung dafür ein.

Ich habe ein Skript, in dem mehrere Funktionen ausgewählt und aufgerufen werden können. Derzeit wähle ich die aufzurufenden Funktionen, indem ich sie auskommentiere oder eben nicht. Da dies ein gewisses Risiko (für andere Anwender) darstellt (z.B. durch falsches auskommentieren), möchte ich es vereinfachen. D.h. ich möchte zu Beginn des Skriptes auswählen können, welche Funktion ausgewählt, und welche ignoriert werden soll.

Beispiel:
Im Skript habe ich 2 Unterschiedliche Funktionen, bei denen es jeweils zwei Möglichkeiten gibt.
F1a
F1b
F2a
F2b

Jetzt soll der Anwender zu Beginn wählen können, welche Funktionen aktiviert werden (jeweils ENTWEDER a oder b oder keine). Nur die gewählten Funktionen sollen dann im Hauptskript ausgeführt werden.

Wie mache ich sowas am einfachsten?

Herzlichen Dank!
Gruß, Marc
Private Nachricht senden Benutzer-Profile anzeigen


DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 23.02.2016, 15:16     Titel:
  Antworten mit Zitat      
Hallo,

das wäre eine Möglichkeit:

Code:

functionNames = {'F1a';'F1b';'F2a';'F2b'};

[value,state] = listdlg('PromptString','Select a function:',...
                'SelectionMode','single',...
                'ListString',functionNames);

if state == 1
    switch value
        case 1
            % Funktion F1a
        case 2
            % Funktion F1b
        case 3
            % Funktion F2a
        case 4
            % Funktion F2b
    end
else
    warndlg('Keine Funktion ausgewählt!')
end
       
 
Private Nachricht senden Benutzer-Profile anzeigen
 
hassel
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 11.11.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.02.2016, 15:27     Titel:
  Antworten mit Zitat      
Hi,

vielen Dank für deine schnelle Antwort.
Wenn ich das richtig verstehe, kann ich nur zwischen case 1-4 wählen. Es ist aber der Fall, dass mehrere Funktionen gleichzeitig gesetzt werden.
Z.B. F1a und F2a oder F1a und F2b.
Der Anwender soll beliebige Kombinationen wählen können.
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 23.02.2016, 15:31     Titel:
  Antworten mit Zitat      
Dann bliebe bei meinem Vorschlag nur der Weg, alle möglichen Kombinationen bei functionNames anzugeben und entsprechend die cases hinzuzufügen.
Private Nachricht senden Benutzer-Profile anzeigen
 
hassel
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 11.11.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.02.2016, 15:36     Titel:
  Antworten mit Zitat      
Ich habe es gerade versucht und habe ein weiteres Problem entdeckt. Das habe ich leider nicht ausführlich erläutert. Und zwar werden die Daten von einem anderen Tool übertragen und die Funktionen für jedes Datenpaket ausgeführt. Ich müsste also für jedes Datenpaket die entsprechende Funktion wählen und das ist aufgrund der Häufigkeit der Datenpakete nicht möglich.

Trotzdem vielen Dank! Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 23.02.2016, 15:46     Titel:
  Antworten mit Zitat      
hassel hat Folgendes geschrieben:
Und zwar werden die Daten von einem anderen Tool übertragen und die Funktionen für jedes Datenpaket ausgeführt.


Jetzt verwirrst du mich. Wählt nun der User die Funktion oder das Datenpaket? Beides geht ja wohl nicht. Ohne zu wissen wie der "Rest" deines Programms aussieht, wird es wohl schwierig sein dir zu helfen.
Private Nachricht senden Benutzer-Profile anzeigen
 
hassel
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 11.11.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.02.2016, 16:20     Titel:
  Antworten mit Zitat      
Ok, entschuldige bitte.

Also ich übertrage Daten von einem Tool zu Matlab. Jedes Paket soll dabei durch verschiedene Funktionen verändert werden, quasi eine Art Online-Simulation. Vor der Ausführung soll nun zwischen den verschiedenen Funktionen gewählt werden, je nachdem, wie die Daten bearbeitet werden müssen (z.B. einmal nur F1a, einmal F1a und F2a, ...).

Ich habe es im Moment so gelöst, dass ich ein zusätzliches File ausführe, wo man von Hand auswählt, welche Funktionen ausgeführt werden sollen (z.B. F1a = 1 und F2b = 1) und diese in meiner Main Function über eine if-Schleife abfrage. Ich wollte es allerdings umgehen, dass bei jedem Datenpaket zuerst die gewählte Funktion abgefragt werden muss (if-Anweisung verlangsamen das ganze ja).
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 23.02.2016, 17:23     Titel:
  Antworten mit Zitat      
Ehrlich gesagt verstehe ich es immer noch nicht besser. Wozu überhaupt die Trennung in Funktionen? Warum wird die Bearbeitung der Daten nicht in einer Funktion gemacht, wobei irgendein Parameter steuert, welcher Bearbeitungsweg genommen werden soll?

Also entweder postest du mal den relevanten Code/Aufbau oder ich persönlich kann dir nicht mehr weiterhelfen. Deine Aussagen sind einfach zu ungenau.

Zitat:
Ich habe es im Moment so gelöst, dass ich ein zusätzliches File ausführe, wo man von Hand auswählt, welche Funktionen ausgeführt werden sollen (z.B. F1a = 1 und F2b = 1) und diese in meiner Main Function über eine if-Schleife abfrage


Warum ist das Auswahlen nicht auch im Main? Ich kenne deinen Programmaufbau nicht und raten ist hier zwecklos.

Zitat:
(if-Anweisung verlangsamen das ganze ja).


Sicherlich kostet eine if-Anweisung Ausführungszeit, aber solange die Prüfung der Bedingung nicht komplex ist, ist die Ausführungszeit vernachlässigbar.
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.