Najprawdopodobniej użyjesz package, który jest trochę jak moduł python, ponieważ jest to folder, który może pomieścić wiele plików. Robisz to przez umieszczenie +
na początku nazwy folderu, na przykład +mypackage
. Następnie można uzyskać dostęp do funkcji i klas w folderze przy użyciu notacji podobnej do Pythona, bez tego, że zanieczyszcza ona globalną listę funkcji (tylko pakiet jest dodawany do globalnej listy, a nie do każdej funkcji w nim). Można także importować poszczególne funkcje lub klasy. Jednak zawsze musisz korzystać z pełnej ścieżki funkcji, nie ma czegoś takiego jak ścieżki względne, takie jak w Pythonie.
Jeśli jednak naprawdę chcesz mieć wiele funkcji na plik, prawdopodobnie najlepszą możliwą funkcją jest utworzenie funkcji najwyższego poziomu, która zwróci struct z function handles dla innych funkcji w pliku, a następnie dostęp do uchwytów funkcji z tego pliku struct. Ponieważ MATLAB nie wymaga użycia ()
z funkcjami, które nie wymagają żadnych danych wejściowych, zachowywałoby się to podobnie jak moduł Pythona (chociaż nie wiem, jak wpłynie to na wydajność).
Wiem, że to ból w szyi. Nie ma powodu, dla którego mathworks nie mógłby pozwolić na używanie plików jako pakietów, które obecnie robią dla folderów, na przykład wstawiając +
na początku nazwy pliku. Ale nie robią tego.
Istnieje Matlab funkcji przeglądarki, która pokazuje niestety tylko Matlab funkcje seryjnych. Może mieć pewne nieudokumentowane funkcje Matlab, które mogą umożliwić korzystanie z przeglądarki funkcji dla funkcji dostarczanych przez użytkownika. – JaBe
Oto [ściśle powiązane pytanie] (http://stackoverflow.com/q/3569933/52738). Możesz tam znaleźć pomocne pomysły. Wygląda na to, że możesz chcieć czegoś podobnego w odpowiedzi Jonasa (trasa zorientowana obiektowo). – gnovice