MATLAB如何添加工具箱

MATLAB如何添加工具箱
MATLAB如何添加工具箱

关于如何在matlab中添加新的工具箱的整理和心得

首先说说添加到matlab搜索路径好处:1 对 n——你只需要存储一个副本,就可以在其他地方使用。具体来说,假设你在数据盘D上新建了两个目录abc和def,这两个工程(每个目录下的所有程序相应地称为一个工程)都需要调用同一个(些)函数(简称工具箱),这时候,如果你没有把该工具箱添加到matlab的搜索路径下,则需要分别把工具箱中所有用到的文件都复制到目录abc和def下才能正确运行。这显然浪费空间,所以,matlab提供了一个搜索路径(默认在matlab安装目录下的toolbox中),只要把工具箱对应的整个文件夹复制到搜索路径对应的目录下,并且通知matlab一声(把该路径正确添加到搜索路径中),就可以在abc和def中使用这个工具箱了(即无论你的工程文件在哪个目录(有效的目录)下都可以访问这个工具箱中的函数)。下面就以matlab安装目录下的toolbox目录作为默认的添加路径进行详细说明。

1. 如何添加工具箱?

以下是添加工具箱的方法:(论坛很多人转载过,这里就不作区分了,下面的举例也一样)如果是Matlab安装光盘上的工具箱,重新执行安装程序,选中即可。如果是单独下载的工具箱,则需要把新的工具箱(以下假设工具箱名字为svm)解压到toolbox目录下,然后用addpath或者pathtool把该工具箱的路径添加到matlab的搜索路径中,最后用which newtoolbox_command.m来检验是否可以访问。如果能够显示新设置的路径,则表明该工具箱可以使用了。具体请看工具箱自己代的README文件。

1.1 举例:

要添加的工具箱为svm,则解压后,里边有一个目录svm,假设matlab安装在D:\MATLAB6p5,将svm目录拷贝至D:\MATLAB6p5\toolbox,然后运行matlab,在命令窗口输入addpath D:\MATLAB6p5\toolbox\svm回车,来添加路径。然后在svm目录下,任意找一个m文件,以svcinfo.m为例,在命令窗口中输入which svcinfo.m。如果显示出该文件路径,如D:\MATLAB6p5\toolbox\svm\svcinfo.m,则安装成功,当然也可以在命令窗口输入path来查看。

上面的说明和例子基本上介绍了在matlab中如何添加工具箱,下面是其他补充:

1.2 添加方式总结:

事实上,有两种添加工具箱到matlab搜索路径的方法:其一是用代码,其二是用界面。其实无论用哪种方法,都是修改pathdef.m这个文件,阁下如果是高手,可以直接打开该文件修改,呵呵,对此这里不作讨论。

1.2.1 代码方式:

1.2.1.1 适用于添加下载的工具箱(别人的):

在命令窗口输入:

addpath D:\MATLAB6p5\toolbox\svm 或者addpath(‘D:\MATLAB6p5\toolbox\svm’);

但是这种方法只能添加svm目录,如果该目录下有其他子文件夹,并且运行时候“隐式”调用到这些子文件夹(例如假设svm目录下存在子文件夹matdata,该子文件夹下有logo.mat 这个文件,且在m文件代码中使用了诸如 load logo 这样的句子,即没有显式给出logo.mat 的具体路径,则称为“隐式”),则不能正确访问。因此,有必要在添加时使用以下语句把svm目录下所有文件夹都添加到搜索路径中:

[Copy to clipboard]CODE:

addpath(genpath(D:\MATLAB6p5\toolbox\svm));

另外,如果只使用以上代码,则退出matlab后,新添加的路径不会被保存下来,下次重新启动matlab后又需要重新添加。可以用savepath来解决这个问题,不过只对matlab 2006a、2006b有效(应该对版本7.0以上的都有效,因没有测试,所以不敢肯定),对6.5版本的matlab无效(该版本没有savepath这个命令),即在命令窗口中使用 savepath 便可。

1.2.1.2 适用于添加自己的工具箱(即工具箱自己编写,然后希望别人下载后当运行主文件时自动把路径添加到matlab搜索路径中):

在主文件中加入如下代码;

[Copy to clipboard]CODE:

sCurrPath = (m('fullpath'));

cd(sCurrPath);

addpath(genpath(sCurrPath)); %如果该工具箱没有其他子目录,则可以不需要用genpath savepath; %这句可根据各人需要自行选择,相信上一节的解释已经很清楚

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使用不同版本的工具箱了,呵

呵,算是一个补救的方法吧。

Matlab工具箱安装

至于Matlab工具箱安装中涉及到了Matlab的搜索路径、工作目录、当前路径、用户路径等好多术语,我这里不想多说什么感兴趣的网友,可以直接查看Matlab的帮助系统,在那里你可以得到最直接的答复,但是你需要一定的英文基础哦。添加工具箱的方法很多,所有方法都是为了达到同一个目的,将工具箱的所在路径添加到Matlab的搜索路径下就可以了下面介绍一种最简单的操作吧,下面以安装mathmodl(数学建模工具箱)为例进行说明

a、将你所需要安装的工具箱解压到$MatlabRoot\toolbox中(其实任意路径都是可以的,但是为了方便管理,我们一般都安装在这里),$MatlabRoot是你的Matlab安装路径,你可以在Matlab中输入matlabroot命令获取

(1)在Matlab输入如下内容(当然你可以直接使用资源管理器进入toolbox目录)

1.>> matlabroot

2.

3.ans =

4.

5.D:\Program Files\MATLAB\R2008a

6.

7.>> winopen(ans)

复制代码

(2)此时会自动跳到Matlab的安装目录下,双击打开目录下的toolbox文件夹

(3)将mathmodl工具箱复制到toolbox中

b.将刚才mathmodl的路径添加到Matlab搜索路径下(可以使用Matlab命令行,也可是用Matlab菜单操作,为了简便我们这里使用第二种)

(1)在Matlab中如下操作,File——>Set Path...——>点击Add with subfolders...

(2)在浏览文件中,选择刚才的安装路径$MatlabRoot/toolbox/mathmodl后,点击确定

(3)此时返回到Set Path对话框,点击左下角的保存按钮(记住一定要保存),此时工具箱彻底安装完毕,点击Close关闭对话框

c.测试下新安装工具箱是可以使用,在Matlab中输入如下内容

1.>>help mathmodl%输入工具箱名称,此时一般会返回该工具箱的说明,也就是mathmodl路径下content.m中的内容

2.%在命令行中输入如下,此时会返回mathmodl路径下所有的文件

3.>>what mathmodl

4.%再到mathmodl中随便找一个不与Matlab中重名的函数,比如DYNPROG.M,在命令行中输入

5.>>which DYNPROG.M

6.

7.D:\My Documents\MATLAB\DYNPROG.M

复制代码

d.工具箱更新缓存,否则每次Matlab启动的时候会给出警告

(1)File——>Preferences——>General——>选中enable toolbox path cache——>点击updata toolbox path cache

(2)完成上面的就可以关闭Preferences对话框了

(3)此时一个工具箱彻底安装完毕

(4)如果以后启动Matlab的时候警告说toolbox path cache失效,那么重复第一步操作就万事OK了

====================================================================

====================================================================

当然如果你对Matlab的命令比较熟悉的话,你可以直接使用命令进行工具箱安装操作,方法如下

(1)将工具箱解压到任意路径,但是推荐MatlabRoot下的Toolbox中

(2)在Matlab中输入

1.>>addpath('Your_ToolBox_Full_Path')%注意必须是文件夹路径

2.>>savepath

复制代码

(3)同样执行上面的测试和确认工作,这里不累述

(4)更新搜索目录,可使用上面的界面操作,当然也可以命令行

1.rehash toolboxcache

复制代码

(注:素材和资料部分来自网络,供参考。请预览后才下载,期待你的好评与

关注!)

相关主题
相关文档
最新文档