pcode

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

Описание

пример

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

Примечание

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 или в текущей папке.

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

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

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

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

Больше о

свернуть все

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

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

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

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

Запутывание кода

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

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