Analyse der verwendeten Funktionen: MATLAB Packages
Wie ich gerade feststelle, werden mittlerweile sämtliche Funktionen, die man in der Funktion verwendet, bei Publish ebenfalls mit exportiert. Dazu erstmal ein großes Lob, bislang war mir das nicht so ganz bewusst.
Hier allerdings ein kleiner Hinweis: Es werden zwar auch verwendete Funktionen aus einem MATLAB-Package richtig erkannt und exportiert, im Publish-Ordner allerdings alle in eine Ebene abgelegt. Entsprechend wird auch der Code nicht mehr ausführbar sein, da der Aufruf über die Punkt-Notation erfolgt, MATLAB den Package-Namen vor dem Punkt aber nicht mehr zuordnen kann. Ohne es ausprobiert zu haben, was passiert, wenn ich zwei identisch benannte Funktionen in unterschiedlichen Packages '+A/dosomething.m' und '+B/dosomething.m' ablege, die in meiner Funktion verwende und dann Publish nutze, tippe ich darauf, dass nur eine der beiden Dateien in den Export-Ordner kommt, um zu bleiben.
Auch wenn das Meckern auf höchstem Niveau ist, der Fall ist denke ich nicht ganz unwahrscheinlich. Gerade wenn Leute die Packages nutzen, kann ich mir gut vorstellen, dass sie auch gleichnamige Funktionen verwenden.
Mein Lösungsvorschlag, falls ihr den absoluten Pfad zur m-Datei kennt: Analyse via regexp, ob die Zeichenfolge 'filesep'+'+' darin enthalten ist (und ob es sich um eine m-Datei handelt?). Gemäß der MATLAB-Logik müssten dann entsprechend ein Package vorliegen, sodass ihr wahlweise die verwendeten Dateien daraus, oder eher noch besser, um unbekannte Querreferenzen innerhalb vom Package zu berücksichtigen, das ganze Package kopieren könnt.
Wollt ihr ganz sicher gehen, zählt die Anzahl der Ordner, die mit einem + beginnen, dann sind auch Subpackages etc. mit berücksichtigt.