|
|
|
Code über Funktionen übersichtlicher machen |
|
| J_ens |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 01.05.2012, 11:31
Titel: Code über Funktionen übersichtlicher machen
|
 |
| |
 |
|
Hallo,
ich habe einen ziemlich langen code und möchte diesen etwas übersichtlicher Gestalten. Deshalb hab ich ihn jetzt in mehrere m-files (jeder "Schritt" in eine file) aufgeteilt und will über eine Hauptfile auf die nötigen Variablen aus den anderen files zugreifen. Die einzelnen files greifen untereinander teilweise auch auf Variablen der anderen zu. Ich habe aus jeder file einfach eine Funktion gemacht und die außerhalb benötigten Variablen in den eckigen Klammern übertragen function
bzw. diesen Funktionsnamen in einer anderen file wieder aufgerufen
. Einige öfter benutzte Variablen habe ich global gesetzt. Meine Fragen:
1. Ist das so die einfachste/übersichtlichste Art oder gibt es in meinem Fall bessere Möglichkeiten?
2. Ohne die Funktionen Funktioniert alles wunderbar. Aber sobald ich eine Funktion daraus mache:
und von einer anderen m-file wie oben beschrieben darauf zugreife, kommt als Fehlermeldung: Undefined function or variable 'data'. Wenn ich data dann global setze kommt als nächste Meldung: Index exceeds matrix dimensions. Irgendwie bin ich da noch nicht ganz durchgestiegen und wäre über Hilfe echt dankbar!
Grüße Jens
|
|
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 01.05.2012, 17:25
Titel:
|
 |
Hallo,
Funktionen haben, um alles übersichtlich zu gestalten, getrennte Workspaces (Arbeitsbereiche). Alles, was in einer Funktion definiert wird und in einer anderen bekannt sein soll, muss explizit übergeben werden.
Das "index exceeds matrix dimensions" bedeutet, dass du auf ein Element zugreifen wolltest, das es nicht gibt. Beispiel:
Woran das bei dir genau liegt, kannst du am einfachsten herausfinden, wenn du den Debugger verwendest.
Grüße,
Harald
|
|
|
|
| J_ens |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 01.05.2012, 17:50
Titel:
|
 |
|
Genau das verstehe ich nicht. Sobald data bekannt ist kann ich doch
definieren und über
darauf zugreifen. Das ist doch dann alles im gleichen Workspace dieser m-file!??
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 01.05.2012, 20:30
Titel:
|
 |
Hallo,
wie dir die Fehlermeldung sagt, ist data (mit kleinem d) aber nicht bekannt.
Grüße,
Harald
|
|
|
|
| J_ens |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.05.2012, 19:52
Titel:
|
 |
| Zitat: |
| Wenn ich data dann global setze kommt als nächste Meldung: Index exceeds matrix dimensions. |
Das düfte dann doch nicht sein!?!
|
|
|
|
| J_ens |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.05.2012, 19:56
Titel:
|
 |
|
Dann ist 'data' bekannt und die Fehlermeldung: index exceeds matrix dimensions erscheint für die variable 'v'. Das verstehe ich dann nicht
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 02.05.2012, 20:07
Titel:
|
 |
Hallo,
ohne die Daten zu haben, kann ich dir das auch nicht erklären.
Alles, was ich ohne die Daten dazu sagen kann, habe ich in meinem Beitrag von gestern, 18:25 geschrieben.
Grüße,
Harald
|
|
|
|
|
|
|
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.
|
|