MATLAB startup.m忽略了cd?

时间:2015-04-14 13:55:59

标签: matlab

在我的startup.m文件中,我调用脚本init.m。在这个init文件中,我确定包含该文件的文件夹,想要将当前目录设置为该文件夹并继续其他一些初始化的东西。 但是当我启动Matlab时,文件将被执行,但cd命令似乎被忽略,目录不会被更改。有人知道为什么吗?即matlabpath变量由子文件夹扩展....

startup.m来:

run 'D:\FloatingZone\mscrystalgrowth\trunk\MATLAB\FzKameradaten\FzCameraEvaluation\init.m';

init.m

% get path to folder containing this function
folder=mfilename('fullpath');
file=mfilename();
folder=folder(1:end-length(file));
% change folder
cd(folder);
% add subfolder to the top of the MATLAB path
addpath(genpath('Tools'));

2 个答案:

答案 0 :(得分:3)

MATLAB完全按照你说的做了;启动脚本没什么特别的。

来自run命令的文档:

  

run更改包含脚本的文件夹,执行该脚本并重置回原始文件夹。如果脚本本身更改了文件夹,则run不会还原到原始文件夹,除非 scriptname 更改为此脚本所在的文件夹。

因此,cd命令实际上没有做任何事情,run已经更改了目录。然后完全按照预期将其改回。

答案 1 :(得分:1)

我不是100%清楚你希望你的创业公司做什么。正如已经指出的那样run正常工作。

替代startup.m

if isdeployed == false
  cd 'D:\FloatingZone\mscrystalgrowth\trunk\MATLAB\FzKameradaten\FzCameraEvaluation\'
  init();
end
存储在init.m文件夹中的

函数FzCameraEvaluation\

function init
  addpath ( genpath ( '../Tools' ) );
end

这有用吗?