下载的代码包里的文件都是干什么的?
当我们从网络上下载matlab的源代码时,得到的通常是代码的压缩包,里面包括很多各种后缀的文件。他们都是什么文件呢,都是干什么用的?
m后缀的文件:这是matlab代码的最常用后缀,就像C++的常用后缀是cpp一样。只要看到.m文件,你就知道这个是matlab的代码。和C++不同的是,很多matlab的自定义函数,也是单独定义在m文件中的。
fig后缀的文件:这个是matlab输出的绘图结果保存的文件,保存着各种仿真结果的曲线。此外,GUI的图形用户界面也是以fig文件的形式保存的。
asv后缀的文件:这个是matlab对用户编辑时间较长的m文件自动保存的文件。对代码的运行不起作用,是可以删除的。
mdl后缀的文件:Simulink是matlab的另外一个强大的仿真功能。与代码方式进行仿真的m文件不同,mdl文件主要是通过各种Simulink的模块,进行实时仿真的文件。
mat后缀的文件:mat文件是用来存储数据的,可以理解为matlab的小型数据库。保存形式类似于excel表格,可以直接加载到程序中,变成相应的变量,也可以作为程序输出结果的保存文件。
p后缀的文件:p文件是为了保护知识产权设计的一种加密文件,是不能查看的。其作用和m文件类似,封装了自定义函数,不可以删除。
txt、doc的文件:有一些代码包会同时携带说明文件,包括程序的用途和参数,还包括程序运行时的注意事项等。还有一些简单的matlab代码,直接保存到文档里。可以直接复制到matlab中,保存为m文件,进行调试和运行。
还要一些文件不是代码部分,而是程序要处理的源文件。例如,图片文件jpg,bmp,gif;视频文件avi;音频文件wav等。这些文件的位置不要轻易改变,否则会影响到程序对这些源文件的调用。
在有些情况下,代码包里还有一些cpp、h后缀的C++文件。这些代码通常是matlab和C++进行混合编程时使用。如果你的项目重点不是混合编程,忽略即可,但是不要删除。
怎么正确启动主程序?
你的“matlab当前工作目录”一定要是你下载的代码压缩包解压后的文件夹!因为通常matlab的默认工作目录,并不是你的代码所在文件夹。
怎么找到主程序文件?
如果你下载的代码具有图形用户界面GUI,那么通常情况下.fig文件就是这个代码的主程序,你只要在确保工作路径正确的情况下,在命令窗口输入xxx.fig,然后回车即可。这样用户界面就会弹出来了。
如果你下载的是Simulink模型代码,确保mdl文件在工作路径,然后在命令窗口输入Simulink,回车后即打开Simulink软件,打开mdl文件即可,然后点击调试运行mdl文件。此外,还直接运行mdl文件,在命令窗口输入sim(’xxxx.mdl’, Trange)其中Trange是仿真时间。
大多数情况下,你下载的是m文件组成的matlab仿真代码。这个时候,只要找到主程序的m文件,打开点击调试运行按钮即可(或者直接按F5或F9)。或者在命令窗口输入主程序的文件名,例如xxx.m或run xxx.m,回车即可运行。
当然,如何找到主程序m文件就至关重要了:
首先,如果代码包里提供了说明文档,请参照说明文档找到主程序。
如果代码包中没有说明文档指出哪个代码是主程序,通常可以通过m文件的命名方式判断。例如以main.m,test.m或中文命名的m文件就是主程序文件。
如果上面的方法不能帮你找到主代码文件,你就需要逐个m文件打开,通过代码的内容来判断是否是主代码了:
如果有m文件是以clear all,clc等清空命令开始的,通常这个文件就是主程序文件;
如果有m文件的开始包含很多关于参数和程序用途的注释部分,通常这个文件就是主程序文件;
如果有m文件不是自定义函数,即不是以function开头的m文件,通常这个文件就是主程序。因为以function开头的多数情况下是自定义函数,仅作为被调用使用;
如果所有的m文件都是自定义函数,那就表示代码的主程序文件是以自定义函数的形式出现的。这个时候那个没有输入参数的自定义函数文件,就很有可能是主程序文件了;
如果所有的m文件都是自定义函数,而且都包含输入参数,很有可能你下载到的是一个工具箱,没有主程序,需要你根据需要自己编写主函数,调用这些自定义函数文件。
此外,使用自定义函数的m文件,一定不是把代码全部粘贴到命令窗口运行的,而是要使用参数调用的。
当然,主程序的m文件可能不止一个,也就是说代码包里包含多个不同功能的主程序。
常见报错及解决方法
错误1:图片或声音文件不存在
当你运行主程序后,命令窗口提示类似unable to find file或者file xxx doesn’t exit的错误,通常是因为缺少图片或声音等源文件导致的。
例如作者在上传代码时,仅仅包含了代码部分,没有包含要处理的图片或声音文件,这时候会出现找不到文件的错误。我们找到代码中加载图片或声音文件的语句,例如imread、wavread等语句。然后根据需要的图片或声音文件,自己补充这个源文件。
错误2:函数不存在
当你运行主程序后,命令窗口提示类似Undefined function or method的错误,通过是某个自定义的函数文件丢失或者工作路径不正确导致的。你要反复确认这个自定义函数的m文件是否包含在matlab的工作路径内,然后确认当前版本的matlab软件是否自带该函数。
附:
matlab代码下载的网站http://www.downma.com/