Что у меня есть:«главный» функция пакета MatLab
У меня есть MatLab скрипт myscript.m
, которая использует р-кодированный вспомогательные функции fcn_A.p
и fcn_B.p
(которые я написал и есть исходный код).
Что я хочу:
Я хотел бы распространять те, другие, как единое целое, что:
- Основной сценарий может быть запущен через
>> myscript
- Вспомогательные функции можно получить доступ за пределами основного сценария, но все же быть защищенным.
>> myscript
запускает скрипт - не функция. То есть переменные, которые он определяет, заданы в базовой среде matlab.- Все распространяется как один каталог или один файл.
Насколько это возможно, я также хотел бы избежать защиты myscript
. Таким образом, его можно использовать в качестве примера использования fcn_A
и fcn_B
.
Редактировать: Оптимально, мне нужен файл или папка, которые вы просто перемещаете в свой путь или рабочий каталог, а затем все это работает, даже не меняя путь.
Что я пробовал:
Сложив все в тот же файл сценария не выполняет второе требование.
Выполнение этого класса (либо через файл classdef
, либо в каталоге @myscript
) не соответствует третьему требованию.
Выполнение этой задачи (с использованием каталога +myscript
) не соответствует первому требованию.
То, что я считаю, мне нужно
Я считаю, что это можно было бы решить, если бы был способ, чтобы определить функцию «по умолчанию» пакета. Как будто содержимое +mypackage/Contents.m
отображается при вводе help mypackage
.
Есть ли способ сделать это?
Спасибо. «Назначение» было подсказкой, мне нужно было найти решение, которое работает так, как я хочу (почти). Что касается предложения 'if nargin == 0' вашего кода, я думаю, что использование комментария справки будет работать лучше. Затем вы можете получить описание использования через '>> help myscript'. – thomasloven
Вы можете получить помощь, только если вы не p-code myscript. В противном случае вам нужно добавить дополнительный файл для получения справки. – Navan
Я думал, что ты сможешь, но, как оказалось, ты абсолютно прав. Я должен был проверить свою теорию с '.m'-файлом, все еще находящимся в каталоге. Виноват. – thomasloven