在MATLAB中,脚本或函数只有在当前路径或搜索路径中才是可被调用的。搜索路径是MATLAB系统中预先设定的一系列路径,用户也可以进行添加、修改或删除。

1. 工作区变量

在D:\Matlab\Ch01下,输入以下命令:

meson 搜索路径_meson 搜索路径

可以看到,工作空间中的变量可以覆盖MATLAB系统自带的预定义函数。

2.当前目录脚本调用

在当前目录新建一个脚本sin.m:

% sin.m
a = 1:10

然后在命令行窗口中输入:

meson 搜索路径_命令行_02

对于sin命令,系统自动做出了选择,有时调用当前目录下的M脚本文件,有时调用预定义函数。

3. 搜索路径脚本调用

已知路径D:\application\Matlab 2018a\bin属于搜索路径,且在该路径下有一个自定义的M函数文件sin1.m:

function a=sin1(b)
a=b;

当前目录为D:\Matlab\Ch01,在命令行窗口中输入以下命令:

b=1:10
a=sin1(b)

meson 搜索路径_命令行_03

可以看到,尽管sin1.m不在当前路径中,但由于它所在路径被设置成搜索路径,因此也能被调用到。

4. 脚本搜索顺序

通常,在执行命令行窗口或者M文件的某一条命令时,对于其中出现的标志符,系统会按照一定顺序寻找相关文件以确定该标志符的含义。搜索的顺序如下:

1)检查该命令是不是一个变量;

2)检查该命令是不是一个预定义函数;

3)检查该命令是不是当前目录下的M文件;

4)检查该命令是不是MATLAB搜索路径中其他路径下的M文件。

举个具体例子看一下,现于当前路径D:\Matlab\Ch01下新建一个M脚本文件sin1.m,内容如下:

b=[1, 2; 3, 4]

在命令行窗口中输入:

meson 搜索路径_命令行_04

当前目录的脚本sin1.m就覆盖了其他路径下的函数sin1.m。

综上所述,用户在定义变量或新建M函数、M脚本时应注意命名冲突问题。优先级:变量-->预定义函数-->自定义函数、M脚本文件。

5. 添加搜索路径

1)使用path命令:在命令行窗口输入path(path, 'D:\application\Matlab 2018a\bin'),也可以使用addpath( 'D:\application\Matlab 2018a\bin').

2)使用菜单:在File菜单中选择Set Path命令,或者在命令行窗口中输入pathtool并按Enter键,可以打开路径设置对话框。

meson 搜索路径_meson 搜索路径_05

两种方法区别:使用path命令添加路径只在本次MATLAB运行期间有效,所做的改变不会保存。而使用菜单操作所做的改变是永久性的,所添加的路径一直属于MATLAB搜索路径。