이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

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은 그 폴더에 들어 있는 모든 .m 파일에 대한 P 파일을 생성합니다.

pcode(fun,'-inplace')는 스크립트나 함수 파일과 동일한 폴더에 P 파일을 생성합니다.

참고

  • pcode 함수는 코드 파일을 난독 처리할 뿐, 암호화하지는 않습니다. .p 파일의 내용을 알아보기는 어렵지만, 보안이 되는 것으로 여겨서는 안 됩니다. 지적 재산을 보호하기 위해 파일을 P 코드 파일로 변환하는 것은 권장되지 않습니다.

  • pcode 함수는 라이브 스크립트 또는 라이브 함수(.mlx)를 지원하지 않습니다.

입력 인수

fun

MATLAB 파일 또는 MATLAB 파일이 들어있는 디렉터리. fun이 패키지 및/또는 클래스 폴더 내에 있으면 pcode는 동일한 패키지 및/또는 클래스 구조체를 만들어 결과 P 파일을 담습니다.

파일 확장자가 없고 폴더가 아닌 입력 인수는 MATLAB 경로나 현재 폴더에 있는 함수여야 합니다.

와일드카드 *를 사용하면 pcode.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)
.            .. 

경로 funclass에 있는 모든 .m 파일에 대해 P 파일을 만듭니다. 입력 파일은 패키지 및/또는 클래스의 일부이므로, MATLAB은 출력 파일이 동일한 패키지 및/또는 클래스에 속하는 폴더 구조체를 만듭니다.

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

P 파일이 동일한 폴더 구조체에 있음을 확인합니다.

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

옵션 inplace를 사용하여 입력 파일과 동일한 폴더에 P 파일을 생성합니다.

여러 개의 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 

원래.m 파일과 동일한 폴더에 P 파일을 만듭니다.

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

  • pcode 알고리즘은 MATLAB 7.5(릴리스 R2007b)에서 다시 설계되었습니다. MATLAB 7.5 이전 버전에서 생성된 P 파일은 MATLAB 8.6(릴리스 R2015b) 또는 이후 버전에서 실행되지 않습니다. 7.5 또는 이후 버전에서 생성된 파일은 MATLAB 7.4 또는 그 이전 버전에서 실행할 수 없습니다.

  • 한 폴더에 있는 모든 파일을 난독 처리할 때 pcode는 하위 폴더 내 파일은 난독 처리하지 않습니다.

  • P 파일은 대응하는 MATLAB 코드 파일(.m)을 수정한 후에도, 이 코드 파일보다 실행 우선 순위가 높습니다.

  • MATLAB은 원래 MATLAB 코드 파일(.m)에 있을 수 있는 도움말 주석은 표시하지 않습니다.

R2006a 이전에 개발됨