2012-04-04 9 views
1

Gibt es eine Möglichkeit, um MATLAB einen Entwickler erinnern oder einen Benutzer warnen, dass mehrere Konflikt (gleichnamigen) Versionen von spezifischer Funktion m-Datei existiert in verschiedenen Verzeichnissen sind derzeit in den path? Dies wäre für große kollaborative MATLAB-Projekte nützlich.Funktion (Datei) Name Collision Warning

Antwort

1

Wenn Sie einen bestimmten Funktionsnamen haben, müssen Sie prüfen, ob bereits Funktionen mit diesem Namen existieren. Sie können die Funktion WHICH verwenden. Zum Beispiel, wenn ich eine neue Funktion Datei test.m zu meinem aktuellen Verzeichnis (C:\Program Files\MATLAB\R2010b\bin\) hinzufügen, dann ist es das, was, das mir sagt:

>> which test -all 
C:\Program Files\MATLAB\R2010b\bin\test.m 
C:\Program Files\MATLAB\R2010b\toolbox\stats\stats\@classregtree\test.m % classregtree method 
C:\Users\user\Documents\MATLAB\test.m         % Shadowed 

Es gibt jetzt drei Funktionen genannt test: Die eine ist eine Klassenmethode für classregtree Objekte , eine ist die Funktion, die ich gerade gemacht habe (obere Zeile), und die letzte (untere Zeile) wird jetzt von der, die ich gerade gemacht habe, beschattet. Dies würde bedeuten, dass, wenn ich test von meinem aktuellen Verzeichnis angerufen würde, würde der erste aufgerufen werden. Wenn ich in ein anderes Verzeichnis zu ändern, erhalte ich diese stattdessen:

>> which test -all 
C:\Users\user\Documents\MATLAB\test.m 
C:\Program Files\MATLAB\R2010b\toolbox\stats\stats\@classregtree\test.m % classregtree method 

Die neuere test Funktion nicht erscheint jetzt, da das vorherige Verzeichnis nicht auf dem MATLAB path gespeichert wurde. Die zuvor beschattete test-Funktion wäre jetzt die aufgerufene.