Matlab p文件解密

news/2024/12/29 17:19:35/

首先,P文件为了保护知识产权设计的一种加密文件,是不能查看的。

运行比较简单,和调用m文件方法一样。

下面是一些解释。

P文件是对应M文件的一种预解析版本(preparsed version)。因为当你第一次执行M文件时,Matlab需要将其解析(parse)一次(第一次执行后的已解析内容会放入内存作第二次执行时使用,即第二次执行时无需再解析),这无形中增加了执行时间。所以我们就预先作解释,那么以后再使用该M文件时,便会直接执行对应的已解析版本,即P文件。但又因为Matlab的解析速度非常快,一般不用自己作预解析。只有当一些程序要调用到非常多的M文件时,如GUI应用程序时,才会作预解析,以增加以后的调用速度。 

P文件可以用来作保密代码之用,如果你给别人一个M文件,别人可以打开来看到你所有的代码和算法。如果你的代码不想被别人看到,那可以给他P文件。

如何使用.p文件

1.首先,将当前工作目录切换到.p文件所在的目录,然后就可以在左侧的工作空间窗口看见该目录所包含的所有文件了,当然包括.p文件啦~

2.由于.p文件是.m文件的预解析版本(不能查看、编辑),显然.p文件同.m文件一样都是一个函数体,只不过此时该函数是一个黑盒子罢了。举例如test.p文件便意味着存在一个已经编好的函数test(如何实现我们不知道),为调用这个函数test,我们需要知道它的参数形式 此时在命令窗口下键入help test,即可查看到test函数的参数 然后我们就可以调用啦

如何自己制作.p文件

在Matlab中,我们经常把语句或函数写在一个M文件里,便于模块化和代码重用,比如,写一个test.m的文件(即自定义一个test函数):

% ———————-

% 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函数文件。


http://www.ppmy.cn/news/595163.html

相关文章

linux下安装p10k的详细过程,美化linux终端

下载zsh sudo apt-get install zsh sudo apt-get install git下载oh-my-zsh 因为zsh配置起来太麻烦了,直接安装oh-my-zsh即可,前往oh-my-zsh官网: https://ohmyz.sh 使用命令: sh−c"sh−c"(curl -fsSL https://raw.g…

蓝桥杯-报时助手

Problem Description: 给定当前的时间,请用英文的读法将它读出来。 时间用时h和分m表示,在英文的读法中,读一个时间的方法是: 如果m为0,则将时读出来,然后加上“oclock”,如3:00读作…

基于MFC的简易TCP/IP调试助手开发

在学习TCP/IP通讯过程中,打算参考网上的教程写一个简易的调试助手,服务器与客户端分别参考以下两位代码完成,效果图如下。 1、如何基于TCP/IP协议进行MFC Socket网络通讯编程_Ezreal_zh的博客-CSDN博客_mfc tcp通信 2、使用MFC制作简易TCP客…

Jmeter函数助手常用函数

记录一些使用过或常用的函数 1、_Random函数 在指定的范围内取随机数字 形式:${__Random(1,999,id)} ,后续脚本中可使用${__Random(1,999,id)}或${id},取值范围一致 1)随机生成数字 2)添加多条数据记录且某些字…

MAC下串口助手合集

https://blog.csdn.net/toopoo/article/details/86988110 1. coolTerm coolTerm(点击下载mac版)是一个图形界面的串口工具,mac/win/linux下均有不同版本,使用起来很简单。 运行以后点击主界面工具栏的Option工具,选择端口和波特率 回到主界…

Jmeter之函数助手

函数助手:通过里面函数的返回值作为参数 一、__counter 1.功能 每次调用计数器函数都会产生一个新值,从1开始每次加1。支持多线程(多用户):计数器既可以被配置成针对每个虚拟用户是独立的,也可以被配置成…

Unity 智能语音助手

Unity智能语音聊天机器人 在本篇文章中,使用了百度的语音识别、语音合成、智能对话Unit的功能,制作成了一款简易的聊天机器人,在开始做之前呢,需要确定需要实现的核心功能,有以下几点: (1&…

ubuntu 串口调试助手

ubuntu 下的串口调试助手推荐有两个 PuTTY 和 CuteCom, PuTTY 除了串口通讯功能外还有 SSH 和 Telnet 等功能, CuteCom 只能用于串口通讯, 但串口界面更友好 安装串口工具 ubuntu 标准安装源中包含这两个软件, 可以直接安装 sudo apt install putty sudo apt install cuteco…