通过搜索路径调用的MATLAB程序的相对路径

时间:2014-10-13 21:00:23

标签: matlab user-interface relative-path

我写了一个带有GUI的MATLAB程序(用于输入测量设置)和一个测量功能,当按下" START"在GUI中。 在两者中,我使用单独的文件作为子函数,以便于阅读和维护。

文件结构看起来像这样

C:/../folder/+measure/measure.m  
C:/../folder/+measure/getData.m  
C:/../folder/+measure/plot.m   
C:/../folder/+measure/evalutate.m

C:/../folder/+measureGUI/getGuiData.m  
C:/../folder/+measureGUI/calcLimits.m  
C:/../folder/+measureGUI/saveGuiState.m  
C:/../folder/+measureGUI/loadGuiState.m    
C:/../folder/+measureGUI/background.png
C:/../folder/+measureGUI/guiState.mat

C:/../folder/measureGUI.fig  
C:/../folder/measureGUI.m

如果我在"文件夹"中执行measureGUI.m,这是有效的。

guiState.mat

中关闭GUI时,GUI中的当前设置保存在saveGuiState.m文件中
filename = '+autoProberGUI/guiState.mat';
save(filename, 'guiState');

下次打开GUI时加载(按loadGuiState.m)。

现在我必须将完成的程序放在网络驱动器上并将该文件夹添加到我的matlab搜索路径中以致电measureGUI.m
该程序有效,但由于相对路径,它无法保存或加载guiState.mat(我猜路径是相对于我当前所在的文件夹,而不是调用函数所在的文件夹)

我想我可以将子文件夹包含在搜索路径中,或者在filename中使用绝对路径。但在我看来,这两种解决方案都不是正确的方法。

有没有办法让文件的相对路径来自驱动器上的功能?相对于

的含义
I:/..NetworkDrive../folder/+measureGUI/saveGuiState.m 

而不是我称之为measureGUI.m

的亲戚

(抱歉英语不好,我希望它不会太混乱)

1 个答案:

答案 0 :(得分:1)

您可以使用pwd获取当前工作目录的完整路径。 然后,您可以与[pwd '/folder/+measureGUI/saveGuiState.m']连接。

要找到您可以使用的功能which