|
|
Variable Schnittpunkte berechnen und plotten |
|
LeConstructor |
Themenstarter
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 04.11.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 17.11.2016, 20:29
Titel:
|
|
Hi Jan,
danke dir vorab für deine Mühe.
Also ich habe mal versucht deine Verbesserungen einzuarbeiten:
So sieht die Fehlermeldung nun aus.
Ich hab mal versucht zu beginn x mit einem 0-array zu definieren, also :
Wenn ich dann, den Code ausführe, rechnet der eine Zeit lang und gibt mir am Ende die Fehlermeldung "Out of memory" zurück...
Hoffe konnte es veranschaulichen.
Grüße LeCon
|
|
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 18.11.2016, 13:05
Titel:
|
|
Hallo LeConstructor,
Dann scheint es also "x" zu sein: Hast Du ein M-File "x.m" erstellt? Und dann f1 aufgerufen ohne Inputs?
Nein, das passt auch nicht. Irgendetwas läuft da sehr merkwürdig. Jedenfalls ist klar, dass diese Zeile eine Funktion aufruft, die mehr Inputs erwartet, als geliefert werden. Mit dem Debugger ist das sehr leicht heraus zu finden, aber in einer Forums-Diskussion ist das sehr zäh. Stoppe doch noch mal in dieser Zeile und gib die einzelnen Terme von Hand im Command Window ein. Dann findest Du so schnelle heraus, wo es hängt, dass mir hier die Finger nervös kribbeln.
Zitat: |
Ich hab mal versucht zu beginn x mit einem 0-array zu definieren, also :
|
Das ist das gleiche wie "x = []".
In welcher Zeile bekommst Du nun den Out-of-Memory Fehler?
Gruß, Jan
|
|
|
LeConstructor |
Themenstarter
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 04.11.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.11.2016, 16:16
Titel:
|
|
Hi Jan,
ich hab jetzt den Code wirklich einzeln durchlaufen lassen und es tritt in jedem Term mit x auf.
Ich hab jetzt den input für tan(x) als Radiant eingegeben, aber das hat auch nicht geholfen.
Wenn ich die Funktion in die for-Schleife einsetze, läuft das Script durch bis wieder der Fehler "Out of Memory" kommt.
Hänge das mal an.
Beschreibung: |
|
Download |
Dateiname: |
matlab.PNG |
Dateigröße: |
125.05 KB |
Heruntergeladen: |
348 mal |
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 19.11.2016, 23:35
Titel:
|
|
|
|
|
Hallo LeConstructor,
Nochmal: Du hast ofenbar irgendwo ein File namens "x.m" erzeugt.
Zudem rufst Du die Funtion ohne den erforderlichen Input "x" auf:
Richtig müsste es heißen:
denn die Funktion ist doch so definiert:
Hier gibt es also 2 Probleme:
1. Du hast den Input x vergessen.
2. Matlab verwendet stattdessen die Funktion "x.m" und moniert, dass dort ein Input erwartet wird.
Ich habe Dir schon gezeigt, wie man nach Funktionen sucht. Benutze das auch, um heruaszufinden, wo das "x" definiert ist:
which x -all
Oder liegt es daran, dass Du Code postest, der nicht zur Fehlermeldung passt, weil Du schon darin editiert hast? Ist es eigentlich der "f1" Aufruf, der den fehlenden Input erzeugt?
Zitat: |
Ich hab jetzt den input für tan(x) als Radiant eingegeben, aber das hat auch nicht geholfen. |
Das hat ja nun auch wirklich gar nichts mit dem Problem zu tun.
Raten bringt einen nicht effizient weiter.
Zitat: |
Wenn ich die Funktion in die for-Schleife einsetze, läuft das Script durch bis wieder der Fehler "Out of Memory" kommt. |
Das ist nur eine vage erklärung dessen, was Du tust. Bitte poste lieber den Code, damit die Leser es nachvollziehen können.
Bitte hänge Fehlermeldungen per Copy&Paste an, da Screenshots für Text eher ungeeignet sind. Aber man kann diesem Screenshot zumindest ansehen, dass es kein "Out of memory"-Fehler ist, sondern ein Erreichen des Rekursions-Limits.
Die Funktion f1 ruft sich recursive selbst auf in (jetzt wäre es schön die Code-Zeile per Copy&Paste zu zeigen, aber wegen des Screenshots ist das umständlich) mit dem fzero Befehl.
Auch hier kannst und solltest Du wieder der Debugger verwenden, um selbstständig herauszufinden, welche Funktion wo rekrusiv aufgerufen wird.
Die Diskussion ist ungewöhnlich für ein eigentlich so konkretes Problem. Mit der eigentlichen Frage vom 08.11.2016, 11:03 hat das kaum noch etwas zu tun.
Der Editor zeigt Dir bereits an, dass beim Input "x" ein Problem vorliegt. Es ist gut, diese Warnmeldungen zu beachten.
Die beiden "which"-Zeilen haben im Code nichts mehr verloren. Sie dienten doch nur dazu herauszufinden, welcher Befehl die Fehlermeldung erzeugt. Aber jetzt erzeugen sie nur Müll auf dem Bildschirm.
Gruß, Jan
|
|
|
|
Gehe zu Seite Zurück 1, 2
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|