首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从当前脚本目录的子文件夹访问数据文件

从当前脚本目录的子文件夹访问数据文件
EN

Stack Overflow用户
提问于 2013-11-18 19:51:22
回答 2查看 4.7K关注 0票数 2

我一直在编写MATLAB脚本。基本上,我有很多函数和数据文件(统称为内核):

我想把它整理一下。我的想法是

  1. 若要创建名为functions的子文件夹,请保存其中的所有函数。
  2. 另一个kernels并保存它中的所有数据内核文件。

稍后,通过在运行时添加这些路径,所有脚本都应该能够访问这些函数和内核,而不给它们提供完整的路径,即脚本也应该在子full中搜索它。

应用addpath(genpath(pwd));适用于函数,但它无法访问内核文件

例如,如果我想访问子文件夹kernels中的名为kernels的文件,该怎么办?

它没有起作用。任何建议。

示例:

代码语言:javascript
复制
% Add the current script directory and subfolders to search path
addpath(genpath(pwd));

% Load NASA Spice (mice) to the script here
% add MICE reference path to MATLAB
addpath('C:\Program Files\MATLAB\R2012b\extern\mice\src\mice');
addpath('C:\Program Files\MATLAB\R2012b\extern\mice\lib');

% Load leap second kernel
% If the leapsecond kernel is placed in script directory
% This file is present in pwd/kernel/naif0010.tls
cspice_furnsh('naif0010.tls'); 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-19 04:02:33

有几件事要记住。首先,默认情况下,当前工作目录(pwd)位于Matlab路径中,因此通常不需要显式调用addpath才能使用脚本、函数或数据文件。

此外,在许多情况下,您可以通过提供相对路径而不是绝对路径来访问文件。在你的例子中,这看起来就像

代码语言:javascript
复制
cspice_furnsh('kernels/naif0010.tls')
票数 1
EN

Stack Overflow用户

发布于 2013-11-18 20:18:38

我用一些我知道不是正确答案的工作解决了这个问题,但是现在我可以继续.

代码语言:javascript
复制
addpath(genpath(pwd));
% Basically just forming full path of the data file
leapSecondsFile = fullfile(pwd,'kernels','naif0010.tls');
cspice_furnsh(leapSecondsFile);

仍在等待正确的答案或建议:

代码语言:javascript
复制
Update:

感谢nispio上面的评论,正确的方法是:

代码语言:javascript
复制
% Load current directory and subfolders
addpath(genpath(pwd)); % This is not necessary 
cspice_furnsh('kernels\naif0010.tls');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20056515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档