2013-04-11 81 views
0

所以我运行Matlab脚本时发生了这个问题。下面是一个简单的例子说明吧:Matlab函数调用目录

所以它的重要勾勒的文件结构:

MainFolder 
    script.m 
    SubFolder 
     a1.csv 
     a2.csv 
     a3.csv 

现在说我有一个这样的脚本:

- > script.m

dir 

它只是打印出文件夹中的文件。

现在奇怪的事情,如果我在子文件夹像这样运行脚本:

>>script 

它会做到这一点:

>> a1.csv a2.csv a3.csv 

,但如果我这样做的文件夹中:

>>run('C:\Users\....\MainFolder\script.m') 

它只会打印出

>> script.m 

所以很明显,它就像我运行它的形式从MainFolder而不是SubFolder

此功能的要点是什么?

回答

3

dir命令显示了Matlab的当前目录的目录内容,而不是指示脚本所在的位置。因此,当您调用该脚本时,该脚本向您显示了您在Matlab命令提示符下的任何位置的目录内容。

为了得到你想要的东西,在脚本中使用此:

dir(fileparts(mfilename('fullpath'))) 
+1

另请注意,您可以使用'cd'命令更改当前目录:'cd('new/working /目录“)'。 – 2013-04-11 06:01:08

0

使用pwd看到当前目录

使用cd改变目录

使用path,看看你的项目文件夹都包含在路径中

使用which看到你是呼唤g右侧的* .m文件(如果路径中存在多个.m文件)

+0

这不是我的问题的答案,但谢谢。 – 2013-04-14 22:47:56