分享

matlab添加工具箱

 Tehero 2013-11-01
1.2.2 界面方式:
首先把主界面调出来,有两种方式,一种是在命令窗口输入pathtool,另一种是在matlab菜单调用(File -> Set Path…)。打开主界面后,相信不用太多解释了。Add Folder… 或者 Add with subfolders… 就可以了,添加完毕后,如果需要保存该路径,则在close前save一下就可以了。
这种方式的好处是如果路径有问题,matlab会马上报错,告诉用户添加失败。

2 工具箱添加失败:

2.1 work目录和toolbox目录问题:
你当然可以单独把一个或多个文件(不含文件夹)放在work目录下来实现“1对n”,因为work目录是其中一个matlab默认的搜索路径,但显然不能包含文件夹,如果包含文件夹,则同样需要把该文件夹添加到搜索路径中。相反,你不能单独把一个或多个文件(不含文件夹)放在toolbox目录下来实现“1对n”,因为toolbox这个目录并非matlab的一个默认搜索路径,除非你把toolbox文件夹添加到搜索路径中。

2.2 由于路径名称而导致添加失败的总结:
2.2.1 路径存在空格:
错误:addpath C:/Program Files/MATLAB/R2006b/toolbox/finity
正确:addpath(‘C:/Program Files/MATLAB/R2006b/toolbox/finity’) 或者使用界面方式添加
说明:在6.5版本的matlab不推荐使用带空格的路径,因为matlab6.5的安装路径是不允许有空格的,因此不晓得带空格的工具箱路径会出现什么问题。7.0以上应该没有问题。

界面方式则估计没有问题,有问题matlab会自动报错的。

2.2.2 路径存在中文:
用addpath和界面方式均可以成功添加,但不推荐,最好使用英文路径。

2.2.3 路径存在“@”字符:
均不成功,不要使用“@”字符

小结:出现其他与添加相关的错误时,用标准的路径和文件名试试吧。

3 正确添加了工具箱,但运行调用时出错:

3.1 版本问题:
对于工具箱检测到matlab版本不兼容的问题,先引用一下happy教授的回复:
=====================happy================================
这个是有用的,估计是作者考虑到随着matlab的升级会出现不兼容的问题,因此加了类似的设置error('unsupported matlab version. please send an email.');以提示大家。从这一设置上看4.x和5.x版本的是完全没有问题的,之后的版本可能会出现问题,是否真的会出现需要进行测试
=========================================================
我也遇到过这类问题(如3.3节提到的spm5,下载得到的文件如果遇到2006版本的matlab则无法成功运行),但不是matlab的直接回复说“版本不支持”,而是普通的语法出错。我的经验是根据错误提示调试一下,看看问题出在哪里,然后再对程序作相应修改。例如在我的问题中,由于不支持最新的版本,所以2006a和2006b版本分别用下面的语句进行检查:strcmp(version('-release'),'2006a') 和 strcmp(version('-release'),'2006b')。

3.2 程序中其他语法错误:
估计部分语法不兼容,例如7.0版本以上的matlab可以使用&&、||、@(x)等等之类的符号,但是在6.5版本下无效,这种错误也需要自己手动修改一下代码。

3.3 工具箱中的函数重名问题:
Happy教授也提到过,除了改名,没有太好的办法。但是如果改的地方不止一个,例如遇到该文件进行了多次的自我调用(一个典型例子是以switch 和case语句进行区分不同的操作),或者其他文件存在对该文件的调用时,这是个很头痛的事情。根据我的经验,也没有找到太好的解决办法。以我所用的两个工具箱为例,它们的文件夹名字不同(一个是spm2,一个是spm5),但是里面的主m文件名字都一样,为spm.m,如果两个工具箱同处于matlab的搜索路径中,会导致其中一个工具箱失效,更别说两者之间通过切换来进行调用了。我一般的解决方法是安装两个matlab,例如一个是6.5版,一个是2006版,把两个工具箱分别添加到不同的matlab中,这样就可以启动不同版本的matlab使用不同版本的工具箱了,呵呵,算是一个补救的方法吧。

3.4 找不到m文件的问题:
如果你已经把工具箱正确添加到搜索路径下,这种情况一般不会发生。也就是说,通过“文件夹copy -> 运行matlab ->添加路径”步骤后,该文件夹下所有文件应该都可以访问到。但是,当你对该文件夹下的m文件更新(包括修改和新增)了以后,此时如果你不重启matlab,则可能会出现找不到m文件的问题(特别是该工具箱中的文件没有依赖关系,它们只是被放在一起方便调用,当你新增一个m文件到该文件夹下而不重启matlab的时候,会造成这一新增m文件访问失败)。解决这个问题的方法之一显然是重启matlab,如果你不想重启,也可用第二个方法:在命令窗口输入: rehash toolbox ,“强制”matlab刷新toolbox目录下的所有文件,这样就可以正确访问了。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多