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

Function in Script

 

anve

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.07.2009, 20:38     Titel: Function in Script
  Antworten mit Zitat      
Hallo!

Ist es möglich eine Funktion in einem Script zu haben? Bsp:
Code:

x=5;
y=3;
x=x+1;
callme(x,y);
y=y+1;
...

function callme(x, y)
      x=x/2;
      y=y/2;
      plot(x,y);
end
 


Ich hab irgendwie in Erinnerung das mal gesehen zu haben. Aber so wie im Bsp. oben funktioniert es nicht ...

Grüße


LittleX
Forum-Guru

Forum-Guru


Beiträge: 494
Anmeldedatum: 14.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.07.2009, 21:05     Titel:
  Antworten mit Zitat      
Hallo,

Du kannst mehrere Funktionen (Stichwort subfunctions) in einer Datei haben. Aber dazu muss die Datei mit einer Funktion beginnen.
Das sieht dann folgendermaßen aus:
Code:

function myfoo
x=5;
y=3;
x=x+1;
callme(x,y);
y=y+1;
...

function callme(x, y)
x=x/2;
y=y/2;
plot(x,y);
 

Damit hast Du dann eine Hauptfunktion und eine Unterfunktion.

Viele Grüße,

LittleX
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 06.07.2009, 21:07     Titel:
  Antworten mit Zitat      
Wenn ich es in R2009a probiere ich klar und deutlich.

Code:

Function definitions are not permitted at the prompt or in scripts.
 


Ich glaube aber, dass es keinen Nachteil gibt ein Skript durch eine Funktionsdefinition ohne Übergabeparameter zu einer Funktion umzuwidmen.

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 06.07.2009, 21:11     Titel:
  Antworten mit Zitat      
@Andreas: Nur das die Variablen nicht mehr automatisch im Base-WS landen und man somit nicht mehr im Command Window damit herumspielen kann - aber das ist zu verkraften, denke ich Wink (zumindest für die meisten...)
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
anve

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.07.2009, 21:15     Titel: Danke!
  Antworten mit Zitat      
OK, das was ich vor hatte geht also nur in Subfunctions.

@Andreas: Toller Vorschlag!

Vielen Dank an euch alle!

Grüße
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 06.07.2009, 21:18     Titel:
  Antworten mit Zitat      
Nachtrag: Wenn du in den Subfunctions nicht auf Variablen (ohne explite Übergabe) aus der anderen Funktion zugreifen willst, dann kannst du die Subfunctions auch als eigenständige Funktionen in einem neuen mFile abspeichern. Am Aufruf ändert sich nichts, außer das dieser auch aus Skripten heraus funktioniert.

Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
anve
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 06.07.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.07.2009, 21:29     Titel:
  Antworten mit Zitat      
So, endlich mal registriert. Hab schon gesehen, dass ich hier öfters mal nachfragen werde Wink

@steve: Danke für den Hinweis. Da ich vorgegebene Dateinamen verwenden muss, verzichte ich lieber auf das Abspeichern in eigene m-files.

Einen Dank nochmals an LittleX, der die Idee und die Vorgangsweise anschaulich dargestellt hat.
Private Nachricht senden Benutzer-Profile anzeigen
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 06.07.2009, 21:33     Titel:
  Antworten mit Zitat      
Das separate Abspeichern hat zusätzlich den Vorteil, das die gleiche Funktion aus verschiedenen files heraus aufgerufen werden kann, ohne sie nochmal schreiben zu müssen...

Aber wenn du Vorgaben hast, dann ist es meist besser sich daran zu halten Wink

Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
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 - 2024 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.