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

Unklarheit mit 'function'

 

geoanny
Forum-Anfänger

Forum-Anfänger


Beiträge: 29
Anmeldedatum: 13.11.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.04.2010, 10:18     Titel: Unklarheit mit 'function'
  Antworten mit Zitat      
hallo zusammen,

ich habe ein problem mit der "function" programmierung.

wollte in meinem projekt ein popupmenü einfügen und dieses dann so ansprechen, dass es verschiedene excel spalten ausliest. zuvor hatte ich sowas mal mit einer GUI und einfachen änderungen der 'Value's (also anderes problem, keine spalten auslesen) gemacht.

daher hab ich es wieder ähnlich probiert:
Code:

(...)

% popupmenu 'x-value'
status_txt_1 = uicontrol('Style','popupmenu',...
                       'String','x-Parameter: | Spalte A | Spalte B | Spalte C ,...
                       'FontSize',11,...
                       'Tag','popup_x',...
                       'Callback',@popx,...
                       'Parent',panel_1,...
                       'BackgroundColor','white',...
                       'Position',[20,110,140,20]);
(...)

function popx_Callback(hObject, eventdata, handles)
 
switch get(handles.popup_x,'String')  
     case 1
           B:B;
     case 2
           C:C;
     case 3
           D: D;
     otherwise
 end

(...)

%% Daten holen

x = xlsread('daten_CS.xls','popup_x')

(...)

 


ob dieser code überhaupt so funktioniert wie ich es mir vorstelle bezweifel ich gerade. fehler darin beheben kann ich jedoch nicht, weil ich immer folgenden fehler über "Function" erhalte:
Zitat:
Function definitions are not permitted at the prompt or in scripts.


vielleicht kann mir jemand weiterhelfen
Private Nachricht senden Benutzer-Profile anzeigen


josekamara
Forum-Meister

Forum-Meister


Beiträge: 529
Anmeldedatum: 26.04.08
Wohnort: München
Version: ---
     Beitrag Verfasst am: 26.04.2010, 10:40     Titel:
  Antworten mit Zitat      
Hallo,

definiere bitte den Skript (File) als Function ganz oben. D.h
Code:


function guifunction()
(...)

% popupmenu 'x-value'
status_txt_1 = uicontrol('Style','popupmenu',...
                       'String','x-Parameter: | Spalte A | Spalte B | Spalte C ,...
                       'FontSize',11,...
                       'Tag','popup_x',...
                       'Callback',@popx,...
                       'Parent',panel_1,...
                       'BackgroundColor','white',...
                       'Position',[20,110,140,20]);
(...)

function popx_Callback(hObject, eventdata, handles)
 
switch get(handles.popup_x,'String')  
     case 1
           B:B;
     case 2
           C:C;
     case 3
           D: D;
     otherwise
 end

(...)

%% Daten holen

x = xlsread('daten_CS.xls','popup_x')

(...)

 


Gruß

Jose
_________________

Simulation
Private Nachricht senden Benutzer-Profile anzeigen
 
geoanny
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 29
Anmeldedatum: 13.11.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.04.2010, 11:31     Titel:
  Antworten mit Zitat      
danke jose!


zusätzlich habe ich bemerkt, dass man sein .m-file nicht mit "clc;" beginnen darf damit "function" funktioniert.

allerdings jetzt habe ich die verschiedenen abschnitte mit "function" eingeleitet.

zuvor hatte ich auch noch einen plot3 der automatisch gestartet ist. muss ich jetzt die funktionen in den verschiedenen "functions" separat ansprechen?
danke & sorry für so beginner-fragen


update:

also ansprechen kann ich die function mit zB "@xls_load"

hinter "function" pack ich doch immer argumente wie "source, eventdata, hobject,..."

in der hilfe hab ich das nicht so recht verstanden. je nachdem wie die funktion aussieht muss ich bestimmte argumente hinzufügen. wofür genau, bzw wan weiß ich, dass in meiner funktion ein weiteres argument noch benötigt wird?

danke
Private Nachricht senden Benutzer-Profile anzeigen
 
josekamara
Forum-Meister

Forum-Meister


Beiträge: 529
Anmeldedatum: 26.04.08
Wohnort: München
Version: ---
     Beitrag Verfasst am: 26.04.2010, 12:02     Titel:
  Antworten mit Zitat      
Hallo geoanny,

wenn Du die Funktionen hintereinander anordnest, dann brauchst du Parameterübergabe wie z.B handles, um die Eigenschaften vom PopupMenü festzustellen.

Aber wenn Du die Funktionen als nested functions anrodnest dann brauchst du nicht jedes mal die Parameter zu übergeben.

Gruß

Jose
_________________

Simulation
Private Nachricht senden Benutzer-Profile anzeigen
 
geoanny
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 29
Anmeldedatum: 13.11.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.04.2010, 12:07     Titel:
  Antworten mit Zitat      
versteh ich das richtig? wenn ich in meiner function variablen verwende, die ausserhalb der function definiert wurden, gebe ich diese variablen als argumente in klammern an!?

wenn ich zur ausführung einer function, die linke maustaste drücken möchte/muss, dann definier ich das auch als argument?

(also irgendwie MouseBtndownFcn oder so?)
Private Nachricht senden Benutzer-Profile anzeigen
 
geoanny
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 29
Anmeldedatum: 13.11.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.04.2010, 12:11     Titel:
  Antworten mit Zitat      
ah ok. das macht sinn!

ist es dann also so, dass wenn ich es nicht als nested function anordne, ich die functions dann letztlich einzeln ansprechen muss um diese auszuführen!?

vielen dank & gruß


Update:

hab den dreh raus. top! Smile
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.