Matlab中的P代码文件

已有 5681 次阅读

2008-10-23 09:52

|个人分类:未分类

我们经常把语句或函数写在一个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 FilesMATLAB71worktest.p is older than M-file C:Program FilesMATLAB71worktest.m.

C:Program FilesMATLAB71worktest.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函数文件。

转载本文请联系原作者获取授权,同时请注明本文来自杨笔锋科学网博客。

链接地址:http://blog.sciencenet.cn/blog-200374-203293.html

上一篇:张家界风光

下一篇:蝴蝶效应

matlab程序是什么格式,科学网—Matlab中的P代码文件 - 杨笔锋的博文相关推荐

  1. matlab 图的标注文字,科学网-Matlab画图(二):动画及文字标注-周建锋的博文

    俗话说"一图胜千言".在报告中用动画来展示一些关键性内容,可以收到更好的效果,也更能吸引观众的注意力.在这里,我们介绍如何用Matlab生成一些简单的动画,以及如何在画面中添加文字 ...

  2. matlab的peer啥意思,科学网—Matlab读取PEER地震动记录数据库加速度数据函数 - 王德才的博文...

    PEER地震动记录数据库是目前应用最为广泛的数据库,为了便于利用其中的强震记录,对几年前采用Matlab编写的读取加速度数据函数进行了改写,使用了向量化的编写规则,减少了原有的循环处理,比原来的程序简 ...

  3. matlab加速度转化为位移,科学网—Matlab编写由加速度积分得到速度和位移函数 - 王德才的博文...

    研究中经常会用到将加速度数据积分成速度和位移,对前几年编写的程序重新进行了改写.为了测试和验证peer2acc函数.dirFolder函数和acc2vd函数,编写了一个简单的测试程序 acc2vd函数 ...

  4. matlab trapz二重积分函数_科学网—MATLAB中的数值积分方法 - 王福昌的博文

    实际应用中在MATLAB里面都有开发好的命令可以使用,如  quad(), quadl(),quad2d(),triplequad() .需要掌握这些命令的用法. 1. 定积分 trapz(),qua ...

  5. matlab批量生成灰度图像_科学网—matlab彩色图像的批处理转换为灰度、二值和主成分图图像 - 金秀良的博文...

    这段代码主要用来进行图像的批处理转换为灰度.二值和主成分图图像,希望给大家借鉴.其中 RGB to bw可以直接实现,但是效果不好,所以先用RGB to gray,之后再gray to bw.RGB ...

  6. mh采样算法推导_科学网—MCMC中的Metropolis Hastings抽样法 - 张金龙的博文

    Metropolis Hastings抽样法示例 jinlongzhang01@gmail.com Metropolis Hasting(下面简称MH)是蒙特卡罗马尔科夫链中一种重要的抽样方法.本文简 ...

  7. python求组合数c_科学网—Python 组合函数 C(n,m) - 杨玠的博文

    Python 中组合函数 C(n,m) = n!/(m!*(n-m)!) 有两个: 1.itertools.combinations 返回一个对象,其自带指针函数 因此有可以使用 for,例如 a = ...

  8. matlab 小波中心频率,科学网-MATLAB:小波分析—时间序列的多时间尺度分析-李旭的博文...

    时间序列(Time Series)是地学研究中经常遇到的问题.在时间序列研究中,时域和频域是常用的两种基本形式.其中,时域分析具有时间定位能力,但无法得到关于时间序列变化的更多信息:频域分析(如Fou ...

  9. matlab 水平投影,科学网—Matlab中如何将投影信息写入到shape文件中 - 朱永超的博文...

    在Matlab中保存shape格式数据时,没有具体的函数可以将投影信息直接写入到shape文件中,不过可以通过另外一种方式实现.看下shape格式的文件不难发现,shape文件的投影信息是一个单独的文 ...

  10. matlab不用科学计算法表示_科学网—MATLAB小技巧总结 - 李金磊的博文

    ①如何保存命令行窗口的历史命令? 打开MATLAB,进入主页:新建脚本文件,即"*.m"文件,这时会自动弹出"编辑器"窗口. 我们可以在脚本文件(编辑器)窗口中 ...

最新文章

  1. abaqus切削为什么没有切屑_基于ABAQUS的高速切削切屑形成过程的有限元模拟
  2. pandas使用replace函数移除dataframe数值数据中的逗号并基于处理后的数据生成新的整型数据列(remove comma from column values in Pandas)
  3. HDU 1004 Let the Balloon Rise
  4. Global Average Pooling对全连接层的可替代性分析
  5. 复习笔记(九)——C++中的容器(STL容器)
  6. BAT批处理脚本结合SQL应用案例
  7. ConsurrentDictionary并发字典知多少?
  8. python实现归并排序
  9. 【转载】用java压缩文件夹/文件
  10. 5件你可能不知道可以使用 CSS-in-JS 来做的事情
  11. cocos2d-x—schedule介绍
  12. 7.10 添加房间参数
  13. Shell脚本超全详解
  14. cs1.6修改服务器参数设置,cs1.6比赛服务器设置参数
  15. Unity 射线检测
  16. 学计算机的看图写话,小老鼠上网看图写话
  17. STM32F407之电阻式触摸屏
  18. NCC带审批流的主子表
  19. 编写css代码的方式
  20. linux 所有服务都无法开启,查看log Fatal server error (EE) Could not create lock file in /tmp/.tX0-lock

热门文章

  1. 如何修复cdn服务器异常,cdn服务器连接异常怎么解决
  2. unity 手机游戏研究
  3. 华盛顿大学华人团队进入微软Imagine Cup总决赛!
  4. linux下Intel无线网卡驱动安装
  5. PAT 1021 Deepest Root (25分) 从测试点3超时到满分再到代码优化
  6. 43.Django04
  7. 我喜欢的作品风格: 韩国daksha作品IF YOU GO AWAY…
  8. JS-underfined is not a function
  9. hnu 数字电路 实验1.1 异或门
  10. wamp3.1.0 X64下载链接(最新)