MATLAB Answers


What is the difference between MATLAB code and P-code in MATLAB?

I would like to know the difference between MATLAB code and P-code in MATLAB.

MathWorks Support

1 Answer

Answer by MathWorks Support Team on 27 Jun 2009
 Accepted Answer

When you call a MATLAB function from the command line or from within another MATLAB file, MATLAB parses the function and stores it in memory. The parsed function remains in memory until cleared with the CLEAR command or you quit MATLAB. The PCODE command performs the parsing step and stores the result on the disk as a P-file to be loaded later.
For example:
pcode average
This command parses average.m and saves the resulting pseudocode to the file named average.p. This saves MATLAB from reparsing average.m the first time you call it in each session.
MATLAB is very fast at parsing, so the PCODE function rarely makes much of a speed difference. One situation where P-code does provide a speed benefit is for large GUI applications. In this case, many MATLAB files must be parsed before the application becomes visible.
Another situation for P-code is when, for proprietary reasons, you want to hide algorithms you have created in your MATLAB file.
For more information, refer to the documentation on PCODE:
doc pcode


When in doubt ask Wikipedia: Parsing The sections on computer science and parsing explain it quite well. At one time MATLAB was implemented as a p-code interpreter see Wiki on P-code machine. The command name dates back to that time.

Sign in to comment.