在我的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'));
答案 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
这有用吗?