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

Matlab-Bibliothek-in-m-File-Versuch

 

Einfachkrank
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 07.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.05.2014, 11:08     Titel: Matlab-Bibliothek-in-m-File-Versuch
  Antworten mit Zitat      
Hallo,

ich habe versucht mir ein Skript zu basteln, in dem ich mehrere Unterfunktionen zusammenhäufe und die aber extern aufrufen kann. Sieht folgendermaßen aus:
Code:

function varargout = libtest(varargin)
% Begin initialization code - DO NOT EDIT
if nargin && ischar(varargin{1})
    callback = str2func(varargin{1});
end

if nargin > 1
    varargin = varargin(2:end);
else
    varargin = {};
end

if nargout
    [varargout{1:nargout}] = feval(callback, varargin{:});
else
    feval(callback, varargin{:});
end
% End initialization code - DO NOT EDIT


function val = plus(yeah, eins, zwei)
disp(yeah);
disp(eins)
disp(zwei)
eins + 1
sin(zwei)
val = 0;


function val = minus(yeah, eins, zwei)
disp(yeah);
val = eins - zwei;


function say_hello
disp('hello');


function say(word)
disp(word);
 


Der Aufruf der Funktionen say, say_hello macht überhaupt keine Probleme, und bei den Funktionen minus, plus kommt es zu Fehlern, die ich null kapiere wenn man versucht mathematisch mit den Variablen zu arbeiten. Die Ausgabe der Werte eins und zwei klappen noch wunderbar, aber bei dem Versuch damit zu rechnen passiert was Seltsames.

Hat einer von euch eine Idee?

Viele Grüße, Michael
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.05.2014, 11:47     Titel:
  Antworten mit Zitat      
Hallo,

wie rufst du die Funktionen denn auf?
Hast du's mal mit dem Debugger versucht?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Einfachkrank
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 07.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.05.2014, 12:55     Titel:
  Antworten mit Zitat      
Ich rufe sie zum Beispiel so auf:
Code:

a = libtest('plus', 'hallo', 5, 6);
 


Natürlich Wink kam auch zu undenklich vielen möglichen Fehlermeldungen, gerade springt er rekursiv immer wieder zum Funktionsanfang und zwar ab dem Punkt an dem dem Rückgabewert val ein Wert zugewiesen wird.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.05.2014, 13:14     Titel:
  Antworten mit Zitat      
Hallo,

du solltest die Funktionen nicht plus und minus nennen.
plus und minus sind nämlich die Funktionen, die hinter den Operatoren + und - stecken.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Einfachkrank
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 07.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.05.2014, 14:59     Titel:
  Antworten mit Zitat      
Ich dreh am Rad, jetzt geht es Shocked Wie soll man denn darauf kommen?! Very Happy

Dankeschön!!!
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.05.2014, 15:22     Titel:
  Antworten mit Zitat      
Hallo,

das war zwar wohl eher eine rhetorische Frage, aber ich habe trotzdem eine Antwort:
Setze in der Zeile mit "eins + 1" einen Haltepunkt, und dann im Debugging Modus:
Code:


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Einfachkrank
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 07.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.05.2014, 15:35     Titel:
  Antworten mit Zitat      
Shocked Wahnsinn! Dennoch super interessant! Danke!
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.