如何查看MATLAB自带函数的源代码
有时候可能需要把MATLAB程序移植成C程序或者C++程序,这对与通信行业的人来说是很常见的事情,事先利用MATLAB天生具备的优越可视化环境仿真,利用MATLAB丰富的自带行数完成复杂算法的仿真,以比较不同算法之间的效率,对高效算法进行移植。
这时候往往会用到一些较为专业的函数,例如rgb2gray、fft等等,在MATLAB中我们仅是调用这些函数,不用关心MATLAB是怎么实现这些函数的,但是要想移植成C/C++程序,必须自己编写这些专业函数,如果我们可以查看这些函数在MATLAB中是如何实现的,那么对于移植效率会有很大提升。有若干种可以查看MATLAB函数源代码的方法:
1、在命令窗口中输入:type 函数名(例如type rgb2gray等),就会在命令窗口出现该函数的相关说明及源代码;
2、在命令窗口中输入:open 函数名(例如open rgb2gray等),就会打开该函数的m文件;
3、在命令窗口中输入:edit函数名(例如edit rgb2gray等),同样会打开该函数的m文件;
4、还有一种方法就是故意将原函数的参数类型或者个数写错,就会出现出错提示,点击提示出错处,也可以打开该函数的m文件;
很多大型的函数都能获得源代码,但是MATLAB里面有一些built-in函数是看不到源代码的,sort就是其中之一。这些函数是预编译好的,运行效率非常好,比如像find、min、max等频繁用到的一些函数还有很多矩阵运算函数都是built-in函数。
有几种方法可以实现查看matlab里自带函数的源代码:
在命令窗口中输入:
(1)、type 函数名(如 type rgb2gray 或者 type rgb2gray.m):即可在命令窗口中显示此函数的源代码;
(2)、open 函数名(如 open rgb2gray 或者 open rgb2gray.m):即可打开rgb2gray.m文件;
(3)、edit 函数名(如 edit rgb2gray 或者 edit rgb2gray.m):即可打开rgb2gray.m文件;
(4)、还有一种方法就是故意将原有函数的参数或类型写错,它就会提示错误,然后点击提示错误处,也可打开m文件,如:
rgb2gray(f, 3);%f为彩色图像文件名,后面的3是随意加上去的,因为函数rgb2gray原本就一个参数,现在为2个,肯定会报错
rgb2gray(f, 3);
??? Error using ==> iptchecknargin at 77
Function RGB2GRAY expected at most 1 input argument
but was called instead with 2 input arguments.
Error in ==> rgb2gray>parse_inputs at 76 %点击此处即可打开m文件
iptchecknargin(1,1,nargin,mfilename);
Error in ==> rgb2gray at 35 %点击此出也可打开m文件
X = parse_inputs(varargin{:});
不过,一些比较底层的源代码是看不见得。