2013-10-30 147 views
4

我想使用matlab访问私人文件夹中的函数。知道如何为私人文件夹添加路径将是非常好的?如何将matlab路径添加到私人文件夹?

+0

当然,如上所述,您可以将内容复制到另一个文件夹。但是这会导致重复的文件。这个问题在我开发一个具有私有(非用户可调用)函数的维护工具箱时出现了。我也希望添加和调用这些函数来简化开发(我已经结束了多次编辑函数的错误副本)。 – horchler

+0

你想要完成什么?如果你只是想使用这些私有函数,从自己的函数中调用它们就足够了。 –

+0

我有点困惑。我以某种方式假定我们正在谈论“内建”私人功能,这可能会做一些有用的事情,但通常不会从外部调用。对我来说,这意味着两个函数(原始和副本)都没有被修改 - 只有两个有意义的版本。如果你自己是这些私人功能的开发者,那么为什么要把它们放在第一位,如果你想从非私人环境中调用它们呢? – sebastian

回答

4

我不认为有一种方法可以避开matlab的path内部结构,以防止添加“私有”文件夹。

如果你确实需要从matlab安装中的某个地方访问一个私有函数,那么你当然可以自由地将该私有函数(或完整目录)复制到其他地方,以便你可以将它添加到你的路径。

+0

我得到什么作为一个错误是: – sophie

+0

“../private”是不是一个目录”或不在路径 – sophie

+0

所以,你应该检查确实存在“../ private”路径。由于您使用的是相对路径,因此请检查您是否从正确的目录发出命令。但是,一旦你解决了这个问题,你肯定会遇到在路径上不允许“私人”目录的错误。 – sebastian

0

我认为最好的做法是将该功能移动到了私有目录(可通过复制它,或者只是移动起来一个目录。)

+0

同意有1个版本比2好,但不确定这是否仍然有助于更新matlab。 –

+0

这不起作用......我不知道,但我从来没有经历过这样的事情......想知道它是否是R2013a版本的更新? – sophie

0

,因为它似乎在添加文件夹的路径是不可能的,你可以考虑一个替代方案。

您应该可以创建/查找调用您需要的私有函数的函数,而不是复制该函数(这会让您需要维护两个版本)。

现在,如果您的基础功能得到更新,您仍然可以。 (除了输入格式改变,但你有更大的问题需要担心)。

+0

我的问题是,这些功能是私人文件夹内从没有写函数调用(和作为一种工具箱的一部分),所以我不能去,并更新每个功能... – sophie

+0

@sophie如果你担心关于功能我不明白这个问题。你的函数应该已经能够访问私有函数,因为私有函数应该意味着你不能从命令行运行它们。也许你需要确保私人目录位于路径上的目录中。 –

+0

@丹尼斯J. - “也许你需要确保私有目录中的一个目录的路径”,听起来逻辑给我检查出来 - 我想知道你是怎么做到的? – sophie

0

我发现以下内容对开发有用,例如:调试私有函数。

cd private 
addpath .. 

我可以使用专用功能,因为他们都在我的工作目录,但我也可以调用用户可见的功能,在工具箱中。

0

我的建议,如果你需要访问私有函数cubicmx.mex存储在

C:\MATLAB\R2011a\toolbox\matlab\polyfun\private 

是在父目录

C:\MATLAB\R2011a\toolbox\matlab\polyfun 

创建一个线功能cubicmx_drv.m用一个语句叫mex一个。

在这些例子中,它会为已读:

function zi = cubicmx_drv(x,y,z,xi,yi,tri,t) 
    zi = cubicmx(x,y,z,xi,yi,tri,t); 

你只需要记住再重新创建如果更改计算机或工作环境。 此外,你甚至可以从自己的代码一样

try 
    zi=cubicmx(x,y,z,xi,yi,tri,t); 
    catch 
    %create (or copy your local version) cubicmx_drv.m to the proper path 
    error(['Exit and restart matlab to solve this problem']) 
    end 

重新安装,以阻止这种自动化解决方案将重新推出MATLAB后工作。

相关问题