pcode

Создайте затененный содержимым, исполняемые файлы

Синтаксис

pcode(fun)
pcode(fun1,...,funN)
pcode(fun,'-inplace')

Описание

pcode(fun) запутывает код в fun.m и производит файл под названием fun.p, известный как P-файл. Если fun папка, затем весь скрипт или файлы функции в той папке запутываются в P-файлах. MATLAB® создает P-файлы в текущей папке. Исходный .m файл или папка могут быть где угодно на пути поиска файлов.

pcode(fun1,...,funN) создает N P-файлы из перечисленных файлов. Если какие-либо входные параметры являются папками, то MATLAB создает P-файл для каждого .m файл папки содержит.

pcode(fun,'-inplace') создает P-файлы в той же папке как скрипт или файлы функции.

Примечание

  • pcode функция запутывает ваши файлы кода, она не шифрует их. В то время как содержимое в .p файл затрудняет, чтобы понять, он не должен считаться безопасным. Не рекомендуется что вы Pcode-файлы, чтобы защитить вашу интеллектуальную собственность.

  • pcode функция не поддерживает live скрипты или живет функции (.mlx).

Входные параметры

fun

Файл MATLAB или директория, содержащая файлы MATLAB. Если fun находится в пакете и/или папке класса, затем pcode создает тот же пакет и/или структуру класса, чтобы содержать получившиеся P-файлы.

Входной параметр без расширения файла и это не папка, должна быть функция в пути MATLAB или в текущей папке.

При использовании подстановочных знаков *псевдокод игнорирует все файлы с расширениями кроме .m.

Примеры

свернуть все

Преобразуйте выбранные файлы от sparfun папка в P-файлы.

Создайте временную папку и задайте существующий путь к .m файлы.

tmp = tempname;
mkdir(tmp)
cd(tmp)
fun = fullfile(matlabroot,'toolbox','matlab','sparfun','spr*.m');

Создайте P-файлы.

pcode(fun)
dir(tmp)
.            ..           sprand.p     sprandn.p    sprandsym.p  sprank.p     

Временная папка теперь содержит закодированные P-файлы.

Сгенерируйте P-файлы из входных файлов, которые являются частью пакета и/или класса. Этот пример использует существующий класс в качестве примера MATLAB.

Задайте funclass как существующее папка класса, которая содержит .m файлы.

funclass = fullfile(docroot, 'techdoc', 'matlab_oop', ...
    'examples', '@BankAccount')
dir(funclass)
funclass =

C:\Program Files\MATLAB\R2013a\help\techdoc\matlab_oop\examples\@BankAccount


.              ..             BankAccount.m  

Создайте временную папку. Эта папка не имеет никакого пакета или структуры класса в это время.

tmp = tempname;
mkdir(tmp);
cd(tmp);
dir(tmp)
.            .. 

Создайте P-файл для каждого .m файл в пути funclass. Поскольку входные файлы являются частью пакета и/или класса, MATLAB создает структуру папок так, чтобы выходной файл принадлежал тому же пакету и/или классу.

pcode(funclass)
dir(tmp)
.             ..            @BankAccount 

Вы видите, что P-файл находится в той же структуре папок.

dir('@BankAccount')
.              ..             BankAccount.p  

Сгенерируйте P-файлы в той же папке как входные файлы с помощью опции inplace.

Скопируйте несколько файлов MATLAB во временную папку.

fun = fullfile(matlabroot,'toolbox','matlab','sparfun','spr*.m');
tmp = tempname;
mkdir(tmp);
copyfile(fun,tmp)
dir(tmp)
.            ..           sprand.m     sprandn.m    sprandsym.m  sprank.m 

Создайте P-файлы в той же папке как original.m файлы.

pcode(tmp,'-inplace')
dir(tmp)
.            sprand.m     sprandn.m    sprandsym.m  sprank.m     
..           sprand.p     sprandn.p    sprandsym.p  sprank.p  

Советы

  • pcode алгоритм был перепроектирован в (релизе R2007b) MATLAB 7.5. Если ваш P-файл был сгенерирован до MATLAB 7.5, он не запустится в (релизе R2015b) MATLAB 8.6 или позже. Файлы, сгенерированные в 7,5, или более поздние версии, не могут запуститься в MATLAB 7.4 или ранее.

  • При запутывании всех файлов в папке, pcode не запутывает файлов в подпапках.

  • P-файл более приоритетен по сравнению с соответствующим файлом кода MATLAB (.m) для выполнения, даже после модификаций к файлу кода.

  • MATLAB не отображает ни одного из комментариев справки, которые могут быть в файле оригинального кода MATLAB (.m).

Представлено до R2006a

Для просмотра документации необходимо авторизоваться на сайте