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

unspezifische Tipps, wie man größere Programme schreibt?

 

propanka

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.03.2016, 22:52     Titel: unspezifische Tipps, wie man größere Programme schreibt?
  Antworten mit Zitat      
Hi.

Ich müsste wohl bald ein größeres Programm schreiben.
Gibt es irgendwelche unspezifischen Tipps, wie man größere Programme in Matlab schreibt, sodass die übersichtlich bleiben?

Wie könnte man eine Aufteilung in mehrere Dateien handhaben?


DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 25.03.2016, 23:07     Titel:
  Antworten mit Zitat      
Hallo,

groß ist immer relativ Wink. Prinzipiell ist eine Aufteilung in function sinnvoll um die Übersichtlichtkeit zu verbessern. Nested functions kann man verwenden, wenn die Funktion nur in ihrer übergeordneten Funktion verwendet wird.

Ansonsten ist es ohne weitere Angaben schwer genauere Tipps zu geben. Soll z.B. eine GUI erstellt werden, bestimmte Vorgaben für einen Datenstrucktur etc.

Gruß DSP
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

die Frage ist sehr pauschal.
Es wäre hilfreich, mehr über die Anwendung und deine Programmiererfahrung zu wissen.

In jedem Fall solltest du mit Funktionen arbeiten:
http://de.mathworks.com/help/matlab/functions.html
Zur Strukturierung des Codes helfen auch local functions und private functions.

Wenn du schon etwas Programmiererfahrung hast, kann auch ein objektorienter Ansatz hilfreich sein:
http://de.mathworks.com/help/matlab.....oriented-programming.html

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 29.03.2016, 00:53     Titel: Re: unspezifische Tipps, wie man größere Programme schreib
  Antworten mit Zitat      
Hallo propanka,

  • Teile das Programm in überschaubare Funktionen.
  • Dokumentiere ausführlich. Wenn ein Programm mehr als 100'000 Zeilen hat, kann nicht mal der Programmierer nach 2 Monaten mehr genau sagen, wie Inputs und Outputs genau definiert sind, wenn dies nicht exakt erklärt wird.
    Dokumentiere auch im Code selbst ausführlich, ansonsten wird es später unmöglich zu debuggen oder zu erweitern.
  • Trenne Code, Daten und GUIs ganz streng. Am besten finden alle Berechnungen in Funktionen statt, die auch von einem eigenständigen Programm aufgerufen werden können. Falls die Berechnungen in den Callbacks eines GUIs versteckt sind, wird es extrem lästig, sie mal eben mit 1000 verschiedenen Inputs durchlaufen zu lassen. Wenn das GUI eigenständig ist und die externen Rechenfunktionen aufruft, ist das dagegen trivial.
  • Konstanten gehören in eigene Funktionen, so dass man sie alle Auf Anhieb findet.
    Wir hatten ein mechanisches System simuliert und die Validierung mit einem realen Test-System zeigte signifikante Differenzen. Ein Integrieren mit höherer Genauigkeit brachte keine Verbesserungen. Das Problem war, dass einer der Kollegen die Schwerkraftkonstante als "9.81" hart codiert hatte, was bei einer Integration mit Tol=1e-6 einfach nicht ausreicht. Dies aber in den riesigen Gleichungen zu finden, war zeitraubend.
  • Dokumentiere noch ausführlicher. Smile
  • Schreibe Code um die elementaren Untereinheiten automatisch zu testen. Das hilft ungemein um zu überprüfen, ob Änderungen am Code, an der Matlab-Version oder des Betriebssystems Auswirkungen haben.


Software-Engineering ist sehr wichtig beim Erstellen größerer Programme. Leider kommt dies bei den Programmierkursen oft viel zu kurz. Man kann ein Programm mit 100'000 Zeilen einfach nicht mit den gleichen Methoden erstellen, wie eines mit 1000 Zeilen. Versionsverwaltung, Qualitätsmanagement, Dokumentations-Methoden, Aufgabenteilung, Unit- und Integration-Tests - dazu gibt es eine Menge Literatur.

Gruß, Jan
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.