pcode

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

Описание

пример

pcode(item) запутывает код в .m файл или папка в пути поиска файлов и создает P-файлы с расширением .p. Если item является .m файл, затем полученный файл item.p. Если item является папкой, затем все файлы скрипта или функции в этой папке запутываются в текущей папке. P-файл имеет приоритет над соответствующим .m файл для выполнения, даже после изменений в .m файл.

Примечание

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

pcode(item1,item2,...,itemN) создает P-файлы из каждого .m файл или папка, указанные в списке, разделенном запятыми.

пример

pcode(___,'-inplace') создает P-файлы в тех же папках, что и входы. Задайте '-inplace' после всех других входных параметров.

Примеры

свернуть все

Преобразуйте файл функции в P-файл.

В файле с именем myfunc.m в текущей папке задайте функцию, которая возвращает квадратный корень кубического полинома.

function y = myfunc(x)
y = sqrt(x.^3 + x.^2 + x + 1);
end

Создайте P-файл из myfunc.m. Определите, какой файл MATLAB® использует, когда вы вызываете myfunc.

pcode myfunc
a = myfunc(3);
which myfunc
c:\myMATLABfiles\myfunc.p

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

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

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

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

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

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

Сгенерируйте P-файлы из входных файлов, которые являются частью класса. (Та же процедура может быть применена к файлам, являющимся частью пакета.) В этом примере используется существующий класс MATLAB.

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

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

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


.              ..             BankAccount.m  

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

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

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

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

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

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

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

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

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

Создайте P-файлы в той же папке, что и исходные .m файлы.

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

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

свернуть все

.m файл или папка для запутывания, заданные как вектор символов или строковый скаляр.

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

  • При использовании подстановочного символа *, pcode игнорирует все файлы без .m расширение.

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

  • Если item находится в папке пакета или класса, затем pcode создает ту же структуру пакета или класса для размещения полученных P-файлов.

Список .m файлы или папки, заданные как разделенный списками , разделенными запятыми векторов символов или строковых скаляров. Список может включать сочетание файлов и папок.

Подробнее о

свернуть все

Совместимость версий

The pcode алгоритм был переработан в MATLAB версии R2007b. Если P-файл был сгенерирован до R2007b, то он не будет запускаться в версиях R2015b или более поздней версии. Файлы, сгенерированные в R2007b или более поздних версиях, не выполняются в R2007a или более ранних версиях.

Связанные файлы P-кодирования

В дополнение к вашей программе, вы можете захотеть запутать другие функции и скрипты, от которых зависит ваша программа. Чтобы определить файлы, необходимые для запуска программы, используйте matlab.codetools.requiredFilesAndProducts функция.

Запутывающий код

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

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