Хотя исходный код MATLAB ® (.m) исполнима сама по себе, содержимое исходных файлов MATLAB легко доступно, раскрывая детали конструкции и реализации. Если вы не хотите распространять собственный код приложения в этом формате, вы можете использовать один из следующих вариантов:
Развернуть как P-код - преобразовать некоторые или все файлы исходного кода в скрытую форму, называемую P-кодом (из ее .p расширение файла) и распространите код приложения в этом формате. Когда MATLAB P-кодирует файл, он не шифруется. В то время как содержимое в .p файл трудно понять, его не следует считать безопасным. Не рекомендуется использовать файлы P-кода для защиты интеллектуальной собственности.
MATLAB не поддерживает преобразование сценариев или функций live в файлы P-кода.
Компиляция в двоичный формат - компиляция файлов исходного кода с помощью компилятора MATLAB для создания автономного приложения. Распространите последнее среди конечных пользователей приложения.
Файл P-кода ведет себя так же, как и источник MATLAB, из которого он был создан. Файл P-кода также работает с той же скоростью, что и исходный файл. Файлы P-кода намеренно запутываются. Они не зашифрованы. В то время как содержимое в .p файл трудно понять, его не следует считать безопасным. Не рекомендуется использовать файлы P-кода для защиты интеллектуальной собственности.
Примечание
Поскольку пользователи файлов P-кода не могут просматривать код MATLAB, рекомендуется выполнить диагностику, чтобы пользователь мог продолжить работу в случае ошибки.
Для создания файла P-кода введите следующую команду в окне команд MATLAB:
pcode file1 file2, ...
Команда создает файлы, file1.p, file2.pи так далее. Чтобы преобразовать все
.m исходные файлы, находящиеся в текущей папке, в файлы P-кода, используйте команду:
pcode *.m
См. раздел pcode справочная страница функции для описания всех синтаксисов для генерации файлов P-кода.
Полученный файл P-кода вызывается так же, как и MATLAB. .m исходный файл, из которого он был получен. Например, для вызова файла myfun.p, тип
[out, out2, ...] = myfun(in1, in2, ...);
Вызов сценария myscript.p, тип
myscript;
При вызове файла P-кода MATLAB предоставляет ему приоритет выполнения над соответствующим .m исходный файл. Это верно, даже если изменение исходного кода происходит в какой-то момент после создания файла P-кода. Не забудьте удалить .m исходный файл перед распространением кода.
Файлы P-кода разработаны независимо от версии, под которой они были созданы, и версии, в которой они используются (обратная и прямая совместимость). Новые и устаревшие функции MATLAB могут быть проблемой, но та же проблема существовала бы и при использовании исходного входного файла MATLAB. Чтобы исправить ошибки такого рода в файле P-кода, исправьте соответствующий входной файл MATLAB и создайте новый файл P-кода.
Файлы P-кода, построенные с использованием MATLAB версии 7.4 и более ранних версий, имеют формат, отличный от формата файлов, построенных с использованием более поздних версий MATLAB. Эти старые файлы P-кода не выполняются в MATLAB 8.6 (R2015b) или более поздней версии. Перестроите все файлы P-кода, построенные с помощью MATLAB 7.4 или более ранней версии, используя более позднюю версию MATLAB, а затем распространите их по мере необходимости.
Другим способом защиты исходного кода является его построение в виде автономного исполняемого файла и его распространение, наряду с любыми другими необходимыми файлами, среди внешних пользователей. Для подготовки файлов к развертыванию необходимо установить Compiler™ MATLAB и поддерживаемый компилятор C или C++. Конечному пользователю, однако, не требуется MATLAB.
Чтобы создать автономное приложение для приложения MATLAB, разработайте и отладите приложение, следуя обычной процедуре для программных файлов MATLAB. Затем создайте исполняемый файл или файлы, следуя инструкциям в разделе Создание автономного приложения из MATLAB (MATLAB Compiler).