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

MathLab programmieren

 

caibang
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 01.05.17
Wohnort: Schweiz
Version: R2007b
     Beitrag Verfasst am: 01.05.2017, 08:28     Titel: MathLab programmieren
  Antworten mit Zitat      
Hi!
Ich bin Neuling in MathLab. Daher würde ich mich freuen wenn jemand mir beim Einsteigen helfen kann.

Hier ist schon mein erstes Problem mit dem einfachen Code:

Code:
%

function y = myfun(x)
y = 1./((x+shift).^3-2*x-5);

shift=3;
Q = quad(@myfun,0,2);


Nach Eingabe

Q = quad(@myfun,0,2);

in Command Windows, kommen Errors:

??? Undefined function or variable "shift".

Error in ==> myfun at 2
y = 1./((x+shift).^3-2*x-5);

Error in ==> quad at 77
y = f(x, varargin{:});[/code]

Was ist falsch in de Code?
Wie kann ich korrigieren?
Danke für Hilfe.
Private Nachricht senden Benutzer-Profile anzeigen


retsam
Forum-Century

Forum-Century


Beiträge: 112
Anmeldedatum: 23.09.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.05.2017, 09:04     Titel:
  Antworten mit Zitat      
Guten Morgen,
also bei mir funktioniert der Code (fast) wie du Ihn eingegeben hast.

1. Die Variable shift muss vorher bekannt sein.
2. bei mir musste ich einen Wert x eingeben.

Folgender Code funktioniert bei mir auf der Konsole:
Code:

shift = 3
x = 3
y=1./((x+shift).^3-2*x-5)
 


Eventuell die variablen wie Shift vorher definieren...

Greetz
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

Code:
shift=3;
Q = quad(@(x) myfun(x, shift) ,0,2);

und als Funktionsdeklaration
Code:
function y = myfun(x, shift)


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

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 01.05.17
Wohnort: Schweiz
Version: R2007b
     Beitrag Verfasst am: 01.05.2017, 14:40     Titel:
  Antworten mit Zitat      
Vielen Dank für die Anweisungen.

@retsam: die code, wie du auf der Console eingegeben hast, funktioniert auch bei mir. Aber nicht der Befehl

Code:
Q = quad(@myfun,0,2);


@Harald: ich habe die Code, wie du vorgeschlagen hast, nach gebildet.

Code:
function y = myfun(x,shift)
y = 1./((x+shift).^3-2*x-5);

shift=3;
Q = quad(@(x) myfun(x,shift),0,2);



Aber es tritt immer noch Fehlermeldung auf:

>> Q = quad(@(x) myfun(x,shift),0,2);
??? Maximum recursion limit of 500 reached. Use
set(0,'RecursionLimit',N)
to change the limit. Be aware that exceeding your available stack
space can
crash MATLAB and/or your computer.

Error in ==> fcnchk

Beim Ausführen der Code ist aber andre Fehlermeldung:

??? Input argument "x" is undefined.

Error in ==> myfun at 2
y = 1./((x+shift).^3-2*x-5);

Was ist dabei falsch?

PS. Wie kann man die Code in einem Rahmen generieren?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

die Funktion und der quad-Aufruf sollten in getrennte Funktionen, z.B. getrennte Editor-Fenster.

Für Anfänger bietet das MATLAB-Onramp eine systematische Einarbeitung:
https://matlabacademy.mathworks.com/

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

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 01.05.17
Wohnort: Schweiz
Version: R2007b
     Beitrag Verfasst am: 01.05.2017, 15:06     Titel:
  Antworten mit Zitat      
@Harald: Vielen Dank für die Link zum Course
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.