Matlab中两个同名函数

Posted

技术标签:

【中文标题】Matlab中两个同名函数【英文标题】:Two functions with same name in Matlab 【发布时间】:2014-06-06 07:29:13 【问题描述】:

我在 matlab 中使用 libsvm,我正在尝试调用 svmtrain。但是我知道 Matlab 也有一个名为svmtrain 的内置函数。我相信他们以不同的顺序采用相同的参数。我怎么知道 matlab 正在调用哪个函数?我想从 libsvm 调用 svmtrain 函数。我如何确保这会发生?

【问题讨论】:

为确保您从libsvm 调用svmtrain,只需将libsvm 的路径及其子目录添加到MATLAB 搜索路径的顶部,以防svmtrain 不在主目录 - addpath(genpath(LIBSVM_PATH)) 有关添加路径的一些信息是 here 【参考方案1】:

如果你有两个同名的函数,Matlab 将调用靠近PATH 头部的那个。因此,如果您从不同的目录调用 svmtrain,您可能会调用不同的函数,即使您所做的唯一更改是更改当前工作目录。

要知道matlab实际使用的是哪个函数,从命令行调用函数which

>> which svmtrain

【讨论】:

以上是关于Matlab中两个同名函数的主要内容,如果未能解决你的问题,请参考以下文章

包体中有两个同名但参数不同的函数是啥意思?

如果两个库提供同名函数产生冲突怎么办?

MATLAB mex文件

全网首发:由两个库同名函数,看LINUX动态库加载及调用

如何在MATLAB中找到两个函数的交集?

HTML代码中在两个匿名函数中使用同名变量出现bug而引起的变量作用域的思考