电子工业出版社

源代码在线查看: matlab中的p代码文件.txt

软件大小: 621 K
上传用户: jjkk778
关键词: 电子工业 出版社
下载地址: 免注册下载 普通下载 VIP

相关代码

				Matlab中的P代码文件2008年03月31日 星期一 18:59我们经常把语句或函数写在一个M文件里,比如:
				% ----------------------
				% test.m
				a = 1;
				b = 2;
				% ----------------------
				这个M语句文件,或:
				% ----------------------
				% test2.m
				function a = test2(b)
				a = b * 2;
				% ----------------------
				这个M函数。
				我们在Command Window里输入:
				>> test
				即是等于输入了
				>> a = 1;
				>> b = 2;
				而输入:
				>> a = test2(2)
				a =
				     4
				便是执行了一个函数。
				以上的内容我想大部份人都知道是怎么一回事了,以下说一说P代码文件。
				如果在Command Window里输入:
				>> pcode test
				便会在相应test.m的文件夹里产生了test.p。如果这时在Command Window里输入:
				>> test
				其实是运行了test.p,而不是test.m。
				P文件是对应M文件的一种预解析版本(preparsed version)。因为当你第一次执行M文件时,Matlab需要将其解析(parse)一次(第一次执行后的已解析内容会放入内存作第二次执行时使用,即第二次执行时无需再解析),这无形中增加了执行时间。所以我们就预先作解释,那么以后再使用该M文件时,便会直接执行对应的已解析版本,即P文件。但又因为Matlab的解析速度非常快,一般不用自己作预解析。只有当一些程序要调用到非常多的M文件时,如GUI应用程序时,才会作预解析,以增加以后的调用速度。
				如Matlab的当前目录(Current Directory)有test.m文件,作预解析后,又有test.p文件。因为P文件的调用优先级比M文件要高,所以当你调用test时,会作优先选择而调用了test.p。
				可以修改test.m的代码为:
				% ----------------------
				% test.m
				a = 3;
				b = 4;
				% ----------------------
				再在Command Window里调用test:
				>> test
				Warning: P-file C:\Program Files\MATLAB71\work\test.p is older than M-file C:\Program Files\MATLAB71\work\test.m.
				C:\Program Files\MATLAB71\work\test.p may be obsolete and may need to be regenerated.
				Type "help pcode" for information about generating P-files from M-files.
				会出现一个Warning,警告你所调用的P文件比同名的M文件要旧,即表示M文件已被修改了。尽管如此,调用的还是旧的P文件,即得出a = 1和 b = 2。
				P文件可以用来作保密代码之用,如果你给别人一个M文件,别人可以打开来看到你所有的代码和算法。如果你的代码不想被别人看到,那可以给他P文件。
				pcode函数也可以应用在M函数文件。 
							

相关资源