|
|
Umfangreiche Funktionsbibliothek - Matlab Updates |
|
Werner Müller |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.09.2016, 21:23
Titel: Umfangreiche Funktionsbibliothek - Matlab Updates
|
 |
Hallo zusammen,
ich habe mir in Matlab eine umfangreiche Funktionsbibliiothek erstellt. Da ich den Software Maintenance Service abboniert habe, habe ich mir jede neue Matlab-Version installiert. Jetzt häufen sich die Probleme mit selbstgeschriebenen Funktionen, die mit neueren Matlab-Versionen ein anderes Verhalten aufweisen oder Fehlermeldungen erzeugen.
Nun frage ich mich, wie ich damit umgehen soll. Eine Möglichkeit wäre, überhaupt keine Updates mehr zu installieren. Eine andere Möglichkeit, bei jeder neuen Version alle eigenen Funktionen erneut zu testen. Beides sehe ich nicht als praxistauglich an.
Hat jemand Vorschläge oder Ideen?
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 21.09.2016, 22:03
Titel:
|
 |
|
 |
|
Hallo,
Zitat: |
Jetzt häufen sich die Probleme mit selbstgeschriebenen Funktionen, die mit neueren Matlab-Versionen ein anderes Verhalten aufweisen oder Fehlermeldungen erzeugen. |
Von welcher Version auf welche bist du umgestiegen?
Welche Fehlermeldungen bekommst du?
Zitat: |
Da ich den Software Maintenance Service abboniert habe |
Dann dürftest du auch Anspruch auf Technischen Support haben. Warum also nicht mal schauen, ob man deine Probleme kennt und vielleicht auch noch eine Lösung?
Zitat: |
Eine Möglichkeit wäre, überhaupt keine Updates mehr zu installieren. |
Ein Weg, der für eine gewisse Zeit durchaus sinnvoll sein kann.
Zitat: |
Eine andere Möglichkeit, bei jeder neuen Version alle eigenen Funktionen erneut zu testen. |
Wenn man händisch jede einzelne Funktion durchgehen würde, wäre das sehr aufwändig. Deswegen ist es sinnvoll, zumindest bei in irgendeiner Form kritischen Anwendungen Unit Tests zu implementieren, die bei Änderungen an der Anwendung, der Programmversion oder was auch immer überprüfen, ob sich die Anwendung weiterhin korrekt verhält. Das ist zwar ein gewisser Aufwand, aber absolut praxistauglich.
http://de.mathworks.com/help/matlab.....-unit-test-framework.html
Grüße,
Harald
|
|
|
Werner Müller |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 22.09.2016, 06:24
Titel:
|
 |
Zitat: |
Von welcher Version auf welche bist du umgestiegen? |
R2015b auf R2016
Zitat: |
Welche Fehlermeldungen bekommst du? |
Ich erhalte z.B. jetzt eine Fehlermeldung, wenn ich in ein vorhandenes Diagramm zusätzliche Daten einfüge, wenn die bisherigen Daten in der x-Achse den Datentyp double hatten (serial date number) und die neuen Daten in der x-Achse vom Typ datetime sind.
Zitat: |
Dann dürftest du auch Anspruch auf Technischen Support haben. |
Das ist die Frage... Es handelt sich um eine Matlab Home Version.
Kommen Änderungen im Verhalten matlab-interner Funktionen häufig vor oder hatte ich jetzt nur Pech?
|
|
|
Andreas Goser |

Forum-Meister
|
 |
Beiträge: 3.654
|
 |
|
 |
Anmeldedatum: 04.12.08
|
 |
|
 |
Wohnort: Ismaning
|
 |
|
 |
Version: 1.0
|
 |
|
|
 |
|
Verfasst am: 22.09.2016, 08:41
Titel:
|
 |
Zu MATLAB Home: Der Technische Support ist da recht eingeschränkt, jedoch können Inkompatibilitäten ja Bugs sein und MathWorks ist darin natürlich interessiert.
Inkompatibilitäten sind selten und für gewöhnlich in den "Compatibiliy Considerations" der Release Notes dokumentiert.
Manche nicht dokumentierten Inkompatibilitäten werden als Bugs eingestuft, manche aber auch nicht, wenn der Nutzer z.B. etwas sehr ungewöhnlich oder unklug codet / modelliert. Das ist natürlich Diskussionssache. In jedem Fall wird der MathWorks Support im Gegenzug zu Bug Reports auch Tipps geben, falls es bessere Praktiken beim Coden gibt.
Andreas
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 22.09.2016, 10:42
Titel:
|
 |
Hallo,
Compatibility Considerations sind in der Tat selten, es kann aber natürlich ein gewisser Aufwand sein, diese zu adressieren.
Wie findest du diese heraus?
doc --> MATLAB --> Release Notes, und dann auf die gelben Dreiecke achten.
Unter Graphics dann den ersten Unterpunkt aufklappen, dann kommt u.a.
Zitat: |
Combining plots that mix different data types along a single axis results in an error. When combining plots, use only one data type per axis. |
Grüße,
Harald
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 22.09.2016, 16:54
Titel: Re: Umfangreiche Funktionsbibliothek - Matlab Updates
|
 |
|
 |
|
Hallo Werner,
Grundsätzlich ist eine umfangreiche funktionsbibliothek immer nur mit der Matlabversion kompatibel, für die sie geschrieben und getestet wurde.
Das ist kein Problem von Matlab, sondern betrifft alle Programmiersprachen. Bei Matlab ist das Probelm nach meinen Erfahrungen seit Version 4.1 (1998) im Vergleich zu anderen Programmier-Umgebungen klein.
Grundsätzlich sollte jede Funktion, die man als "korrekt arbeitend" betrachten möchte, von einem Unit-Test überprüft werden. D.h. dass von einem Test-Programm die erwarteten Outputs zu den definierten Inputs überprüft werden. Dabei werden dann auch unübliche Inputs getestet (Inf, NaN, leere Arrays usw.). Dazu muss auch geprüft werden, ob falsche Inputs zu einer Fehlermeldung mit Programmabbruch führen. Wenn man für jede Unterfunktion einen Unit-Test schreibt und für das Gesamt-Programm noch sog. Integration-Tests, kann man die Funktion mit einem neuen Matlab-Release schnell, sicher, umfangreich und zuverlässig testen.
Leider benötigt das aber auch jede Menge zusätzlicher Programmierzeit. Immerhin bieten moderne Matlab-Versionen eigene Tools für automatische Unit-Tests an und man sollte sie unbedingt nutzen.
Ich habe auch eine umfangreichere Toolbox geschrieben und die Anpassung an neue Matlab-Versionen ist nicht trivial. Ich bin inzwischen bei mehreren 100'000 Zeilen Source-Code angekommen und da ist ohne automatische Tests gar nichts zu machen. Eine manuelle Überprüfung und das Lesen der Releasenotes hilft da nicht mehr.
Es gab immer mal wieder zum Teil undokumentierte Änderungen an wichtigen Funktionen, z.B. fiel der VAX-Format-Support von FOPEN weg, STRNCMP lieferte andere Ergebnisse, wenn nach Strings der Länge 0 gesucht wurde, UNIQUE sortiert plötzlich in einer anderen Reihenfolge und SUM lieferte wegen des Multithreadings nicht immer die gleichen Werte bei identischen Inputs.
Zusammenfassung: Alles ab 20 Zeilen Code benötigt umfangreiche Unit-Tests, wenn man die Programme zuverlässig einsetzen will. Anderfalls wird der Code nicht mehr wartbar und das Debuggen bei einer neuen Matlab-Version wird unmöglich.
Gruß, Jan
|
|
|
Werner Müller |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 22.09.2016, 20:01
Titel:
|
 |
|
|
|
|
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.
|
|