根据运行脚本matlab添加文件夹路径
Add folder path based on run script matlab
不知道为什么这不再有效。很简单的。我有一个脚本,该脚本在同一路径中有一个文件夹。该文件夹包含脚本运行所需的一系列 m 文件。
本来我只是想用
addpath('.../utilities/);
脚本首次出现时 运行。但最近我开始收到这个错误
Warning: Name is nonexistent or not a directory: ...\utilities
In path (line 109)
In addpath (line 88)
In Myrunningcode (line 101)
我也不知道为什么。
我通过 运行以下代码解决了这个问题
p = mfilename('fullpath');
[filepath,~,~] = fileparts(p);
addpath([filepath,'/utilities/']);
至少我想知道为什么会出现这个错误
这是我的目录设置。我使用 windows 10 和 matlab 2016a。
包含相对文件夹的正确方法是:
addpath('./utilities/');
有一个点。
自从存在相关文件夹 AFAIK 以来,这一直有效(并且有效),因此您应该能够使用它而不必担心弃用
问题可能是您的当前目录 (pwd
) 与文件位置不同。 相对目录不是相对于当前脚本,而是相对于 pwd
,因此 mfilename
解决方法解决了您的问题。
第一个解决方案是你自己的,但你可以在一行中完成:
addpath( fullfile( fileparts( mfilename('fullpath') ), 'utilities' ) );
然后检查您的文件是否已经在路径上的最快方法是使用 which
:
% Assuming that myFile.m is within the utilities folder, and not shadowed elsewhere.
% If utilities is on the path, which('myFile') will not be empty.
if isempty( which( 'myFile' ) )
addpath( fullfile( fileparts( mfilename('fullpath') ), 'utilities' ) );
end
或者,您可以将上述检查与 persistent
标志变量配对,这样您就不必在重新输入函数时重复检查。
请注意,addpath
并不是特别慢,这是 genpath
如果您要添加大量子目录,则要避免。
旁白:最好使用 fullfile
而不是手动连接(OS 依赖)文件分隔符。即使您始终使用相同的 OS.
,也可以减少错误空间(例如双斜杠)
不知道为什么这不再有效。很简单的。我有一个脚本,该脚本在同一路径中有一个文件夹。该文件夹包含脚本运行所需的一系列 m 文件。
本来我只是想用
addpath('.../utilities/);
脚本首次出现时 运行。但最近我开始收到这个错误
Warning: Name is nonexistent or not a directory: ...\utilities
In path (line 109)
In addpath (line 88)
In Myrunningcode (line 101)
我也不知道为什么。
我通过 运行以下代码解决了这个问题
p = mfilename('fullpath');
[filepath,~,~] = fileparts(p);
addpath([filepath,'/utilities/']);
至少我想知道为什么会出现这个错误
这是我的目录设置。我使用 windows 10 和 matlab 2016a。
包含相对文件夹的正确方法是:
addpath('./utilities/');
有一个点。
自从存在相关文件夹 AFAIK 以来,这一直有效(并且有效),因此您应该能够使用它而不必担心弃用
问题可能是您的当前目录 (pwd
) 与文件位置不同。 相对目录不是相对于当前脚本,而是相对于 pwd
,因此 mfilename
解决方法解决了您的问题。
第一个解决方案是你自己的,但你可以在一行中完成:
addpath( fullfile( fileparts( mfilename('fullpath') ), 'utilities' ) );
然后检查您的文件是否已经在路径上的最快方法是使用 which
:
% Assuming that myFile.m is within the utilities folder, and not shadowed elsewhere.
% If utilities is on the path, which('myFile') will not be empty.
if isempty( which( 'myFile' ) )
addpath( fullfile( fileparts( mfilename('fullpath') ), 'utilities' ) );
end
或者,您可以将上述检查与 persistent
标志变量配对,这样您就不必在重新输入函数时重复检查。
请注意,addpath
并不是特别慢,这是 genpath
如果您要添加大量子目录,则要避免。
旁白:最好使用 fullfile
而不是手动连接(OS 依赖)文件分隔符。即使您始终使用相同的 OS.