还剩4页未读,继续阅读
文本内容:
关于如何在__tlab中添加新的工具箱的整理和心得首先说说添加到__tlab搜索路径好处1对n——你只需要存储一个副本,就可以在其他地方使用具体来说,假设你在数据盘D上新建了两个目录abc和def,这两个工程(每个目录下的所有程序相应地称为一个工程)都需要调用同一个(些)函数(简称工具箱),这时候,如果你没有把该工具箱添加到__tlab的搜索路径下,则需要分别把工具箱中所有用到的文件都__到目录abc和def下才能正确运行这显然浪费空间,所以,__tlab提供了一个搜索路径(默认在__tlab__目录下的toolbox中),只要把工具箱对应的整个文件夹__到搜索路径对应的目录下,并且通知__tlab一声(把该路径正确添加到搜索路径中),就可以在abc和def中使用这个工具箱了(即无论你的工程文件在哪个目录(有效的目录)下都可以访问这个工具箱中的函数)下面就以__tlab__目录下的toolbox目录作为默认的添加路径进行详细说明
1.如何添__具箱?以下是添__具箱的方法(__很多人转载过,这里就不作区分了,下面的举例也一样)如果是Matlab__光盘上的工具箱,重新执行__程序,选中即可如果是单独下载的工具箱,则需要把新的工具箱(以下假设工具箱名字为svm)解压到toolbox目录下,然后用addpath或者pathtool把该工具箱的路径添加到__tlab的搜索路径中,最后用whichnewtoolbox_com__nd.m来检验是否可以访问如果能够显示新设置的路径,则表明该工具箱可以使用了具体请看工具箱自己代的README文件
1.1举例要添加的工具箱为svm,则解压后,里边有一个目录svm,假设__tlab__在D:\MATLAB6p5,将svm目录拷贝至D:\MATLAB6p5\toolbox,然后运行__tlab,在命令窗口输入addpathD:\MATLAB6p5\toolbox\svm回车,来添加路径然后在svm目录下,任意找一个m文件,以svcinfo.m为例,在命令窗口中输入whichsvcinfo.m如果显示出该文件路径,如D:\MATLAB6p5\toolbox\svm\svcinfo.m,则__成功,当然也可以在命令窗口输入path来查看上面的说明和例子基本上介绍了在__tlab中如何添__具箱,下面是其他补充
1.2添加方式总结事实上,有两种添__具箱到__tlab搜索路径的方法其一是用代码,其二是用界面其实无论用哪种方法,都是修改pathdef.m这个文件,阁下如果是高手,可以直接打开该文件修改,呵呵,对此这里不作讨论
1.
2.1代码方式
1.
2.
1.1适用于添加下载的工具箱(别人的)在命令窗口输入:addpathD:\MATLAB6p5\toolbox\svm或者addpath‘D:\MATLAB6p5\toolbox\svm’;但是这种方法只能添加svm目录,如果该目录下有其他子文件夹,并且运行时候“隐式”调用到这些子文件夹(例如假设svm目录下存在子文件夹__tdata,该子文件夹下有logo.__t这个文件,且在m文件代码中使用了诸如loadlogo这样的句子,即没有显式给出logo.__t的具体路径,则称为“隐式”),则不能正确访问因此,有必要在添加时使用以下语句把svm目录下所有文件夹都添加到搜索路径中[Copytoclipboard]CODE:addpathgenpathD:\MATLAB6p5\toolbox\svm;另外,如果只使用以上代码,则退出__tlab后,新添加的路径不会被保存下来,下次重新启动__tlab后又需要重新添加可以用savepath来解决这个问题,不过只对__tlab2006a、2006b有效(应该对版本
7.0以上的都有效,因没有测试,所以不敢肯定),对
6.5版本的__tlab无效(该版本没有savepath这个命令),即在命令窗口中使用savepath便可
1.
2.
1.2适用于添加自己的工具箱(即工具箱自己编写,然后希望别人下载后当运行主文件时自动把路径添加到__tlab搜索路径中)在主文件中加入如下代码;[Copytoclipboard]CODE:sCurrPath=filepartsmfilenamefullpath;cdsCurrPath;addpathgenpathsCurrPath;%如果该工具箱没有其他子目录,则可以不需要用genpathsavepath;%这句可根据各人需要自行选择,相信上一节的解释已经很清楚
1.
2.2界面方式首先把主界面调出来,有两种方式,一种是在命令窗口输入pathtool,另一种是在__tlab菜单调用(FileàSetPath…)打开主界面后,相信不用太多解释了AddFolder…或者Addwithsubfolders…就可以了,添加完毕后,如果需要保存该路径,则在close前save一下就可以了这种方式的好处是如果路径有问题,__tlab会马上报错,告诉用户添加失败2工具箱添加失败
2.1work目录和toolbox目录问题你当然可以单独把一个或多个文件(不含文件夹)放在work目录下来实现“1对n”,因为work目录是其中一个__tlab默认的搜索路径,但显然不能包含文件夹,如果包含文件夹,则同样需要把该文件夹添加到搜索路径中相反,你不能单独把一个或多个文件(不含文件夹)放在toolbox目录下来实现“1对n”,因为toolbox这个目录并非__tlab的一个默认搜索路径,除非你把toolbox文件夹添加到搜索路径中
2.2由于路径名称而导致添加失败的总结
2.
2.1路径存在空格错误addpathC:\ProgramFiles\MATLAB\R2006b\toolbox\finity正确addpath‘C:\ProgramFiles\MATLAB\R2006b\toolbox\finity’或者使用界面方式添加说明在
6.5版本的__tlab不推荐使用带空格的路径,因为__tlab
6.5的__路径是不允许有空格的,因此不晓得带空格的工具箱路径会出现什么问题
7.0以上应该没有问题界面方式则估计没有问题,有问题__tlab会自动报错的
2.
2.2路径存在中文用addpath和界面方式均可以成功添加,但不推荐,最好使用英文路径
2.
2.3路径存在“@”字符均不成功,不要使用“@”字符小结出现其他与添加相关的错误时,用标准的路径和文件名试试吧3正确添加了工具箱,但运行调用时出错
3.1版本问题对于工具箱检测到__tlab版本不兼容的问题,先引用一下happy教授的回复=====================happy================================这个是有用的,估计是__考虑到随着__tlab的升级会出现不兼容的问题,因此加了类似的设置errorunsupported__tlabversion.pleasesendane__il.;以提示大家从这一设置上看
4.x和
5.x版本的是完全没有问题的,之后的版本可能会出现问题,是否真的会出现需要进行测试=========================================================我也遇到过这类问题(如
3.3节提到的spm5,下载得到的文件如果遇到2006版本的__tlab则无法成功运行),但不是__tlab的直接回复说“版本不支持”,而是普通的语法出错我的经验是根据错误提示调试一下,看看问题出在哪里,然后再对程序作相应修改例如在我的问题中,由于不支持最新的版本,所以2006a和2006b版本分别用下面的语句进行检查strcmpversion-release2006a和strcmpversion-release2006b;
3.2程序中其他语法错误估计部分语法不兼容,例如
7.0版本以上的__tlab可以使用、||、@x等等之类的符号,但是在
6.5版本下无效,这种错误也需要自己手动修改一下代码
3.3工具箱中的函数重名问题Happy教授也提到过,除了改名,没有太好的办法但是如果改的地方不止一个,例如遇到该文件进行了多次的自我调用(一个典型例子是以switch和case语句进行区分不同的操作),或者其他文件存在对该文件的调用时,这是个很头痛的事情根据我的经验,也没有找到太好的解决办法以我所用的两个工具箱为例,它们的文件夹名字不同(一个是spm2,一个是spm5),但是里面的主m文件名字都一样,为spm.m,如果两个工具箱同处于__tlab的搜索路径中,会导致其中一个工具箱失效,更别说两者之间通过切换来进行调用了我一般的解决方法是__两个__tlab,例如一个是
6.5版,一个是2006版,把两个工具箱分别添加到不同的__tlab中,这样就可以启动不同版本的__tlab使用不同版本的工具箱了,呵呵,算是一个补救的方法吧Matlab工具箱__至于Matlab工具箱安装中涉及到了Matlab的搜索路径、工作目录、当前路径、用户路径等好多术语,我这里不想多说什么感兴趣的网友,可以直接查看Matlab的帮助系统,在那里你可以得到最直接的答复,但是你需要一定的英文基础哦添加工具箱的方法很多,所有方法都是为了达到同一个目的,将工具箱的所在路径添加到Matlab的搜索路径下就可以了下面介绍一种最简单的操作吧,下面以安装mathmodl数学建模工具箱为例进行说明a、将你所需要安装的工具箱解压到$MatlabRoot\toolbox中其实任意路径都是可以的,但是为了方便管理,我们一般都安装在这里,$MatlabRoot是你的Matlab安装路径,你可以在Matlab中输入matlabroot命令获取1在Matlab输入如下内容当然你可以直接使用资源管理器进入toolbox目录matlabrootans=D:\ProgramFiles\MATLAB\R2008awinopenans复制代码2此时会自动跳到Matlab的安装目录下,双击打开目录下的toolbox文件夹 3将mathmodl工具箱复制到toolbox中 b.将刚才mathmodl的路径添加到Matlab搜索路径下可以使用Matlab命令行,也可是用Matlab菜单操作,为了简便我们这里使用第二种1在Matlab中如下操作,File——SetPath...——点击Addwithsubfolders... 2在浏览文件中,选择刚才的安装路径$MatlabRoot/toolbox/mathmodl后,点击确定 3此时返回到SetPath对话框,点击左下角的保存按钮记住一定要保存,此时工具箱彻底安装完毕,点击Close关闭对话框c.测试下新安装工具箱是可以使用,在Matlab中输入如下内容helpmathmodl%输入工具箱名称,此时一般会返回该工具箱的说明,也就是mathmodl路径下content.m中的内容%在命令行中输入如下,此时会返回mathmodl路径下所有的文件whatmathmodl%再到mathmodl中随便找一个不与Matlab中重名的函数,比如DYNPROG.M,在命令行中输入whichDYNPROG.MD:\MyDocuments\MATLAB\DYNPROG.M复制代码d.工具箱更新缓存,否则每次Matlab启动的时候会给出警告1File——Preferences——General——选中enabletoolboxpathcache——点击updatatoolboxpathcache 2完成上面的就可以关闭Preferences对话框了3此时一个工具箱彻底安装完毕4如果以后启动Matlab的时候警告说toolboxpathcache失效,那么重复第一步操作就万事OK了========================================================================================================================================当然如果你对Matlab的命令比较熟悉的话,你可以直接使用命令进行工具箱安装操作,方法如下1将工具箱解压到任意路径,但是推荐MatlabRoot下的Toolbox中2在Matlab中输入addpathYour_ToolBox_Full_Path%注意必须是文件夹路径savepath复制代码3同样执行上面的测试和确认工作,这里不累述4更新搜索目录,可使用上面的界面操作,当然也可以命令行rehashtoolboxcache复制代码。