社区导航

 

搜索
查看: 517|回复: 0

[资料分享] 了解一下Matlab p文件和asv文件和mat文件

[复制链接]

3890

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2018-2-24 09:13 | 显示全部楼层 |阅读模式
p文件
        其中的test指的是test.m文件
        如果在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函数文件。
        p文件是加密文件,只能运行,不能还原成m文件的。
        asv文件
        后缀为asv的文件是.m文件自动保存的时候产生的临时文件,程序非正常退出的时候恢复用的,可以用记事本打开看一下,如果matlab正常关闭的话,删掉没影响。
        在file-preference-Editor/debugger-autosave里可以改设置。
        mat文件
        mat数据格式是matlab的数据存储的标准格式。
        可以调用matlab的子程序库,用c或fortan调用mat格式的数据。
        matopen 打开mat文件
        matclose 关闭mat文件
        magetfp 取得mat文件的c语言句柄
        matGetArray 取得一个数组



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 /5 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-2-20 06:51 , Processed in 0.082176 second(s), 19 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表