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

Error using my_function

 

Matlab_User1
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 03.01.23
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.01.2023, 16:49     Titel: Error using my_function
  Antworten mit Zitat      
Meine Funktion lautet:
Code:

function [Q] = my_quad(f,a,b,n)
if n==0
    w_alt=1;
    w(1)=(b-a)*w_alt;
    x(1)=a;
elseif n==2
    w_alt=[1/6,4/6,1/6];
    w=zeros(n+1);
    x=zeros(n+1);
    h=(b-a)/n;
    for i=1:n+1
        w(i)=(b-a)*w_alt(i);
        x(i)=a+(i-1)*h;
    end
elseif n==4
    w_alt=[7/90,32/90,12/90,32/90,7/90];
    w=zeros(n+1);
    x=zeros(n+1);
    h=(b-a)/n;
    for i=1:n+1
        w(i)=(b-a)*w_alt(i);
        x(i)=a+(i-1)*h;
    end
else
    msg='Error';
    error(msg);
end
if n==0 || n==2 || n==4
    Q=0;
    for i=1:n+1
        Q=Q+w(i)*f(x(i));
    end
end
 


Wenn ich jetzt im Commando Window
f=@(x)sin(x);
a=0;
b=2;
n=1;

eingebe, erhalte ich die Fehlermeldung:
Error using my_quad

Dabei ist egal, was f, a, b ind, es kommt immer nur dann, wenn n nicht 0, 2 oder 4 ist.

Kann mir einer helfen?
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


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

wie lautet die vollständige Fehlermeldung?
Und wie lautet der Funktionsaufruf?
Falls du den "Run" - Button genutzt hast... das halte ich bei Funktionen nicht für sinnvoll, da ja Argumente übergeben werden müssen, also im Command Window:
Code:
[Q] = my_quad(f,a,b,n)


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Matlab_User1
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 03.01.23
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.01.2023, 23:22     Titel:
  Antworten mit Zitat      
Danke für die Antwort, ich habe dass so wie du geschrieben hast eingegeben (bis auf die eckigen Klammern).
Das war die vollständige Fehlerangabe, es steht also da:

Error using my_quad
Error

Das zweite Error kommt ja aber von der Funktion...
Wenn ich in der Funktion dass Error ersetze mit disp('Fehlermeldung) funktioniert es eimandfrei sowie wenn ich den Funktionsinhalt in dem Commando Window eingebe/kopiere.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.432
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 03.01.2023, 23:43     Titel:
  Antworten mit Zitat      
Hallo,

ich habe nochmal genauer drauf geschaut:
Zitat:
es kommt immer nur dann, wenn n nicht 0, 2 oder 4 ist.

Das ist kein Wunder, weil dann die Zeilen
Code:
   msg='Error';
    error(msg);

ausgeführt werden. Wenn du keine Fehlermeldung erzeugen willst, dann nutze eben disp.

In jedem Fall sollte die Fehler- oder Statusmeldung aussagekräftiger sein als nur "Error", beispielsweise "n needs to be 0, 2 or 4".

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
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.