5

我找不到如何在mathematica 中使用相对路径。我的目录结构很简单。

Import["G:\\Research\\Acc and Vel Runs\\5-24\\Mathematica\\Data\\250 \
Acc.xls"][[1]] // TableForm  

这通过使用菜单中的插入路径来演示绝对路径。我希望这个笔记本是便携的。我想给某人“Mathematica”目录,我希望他们能够运行代码。我不希望路径中断,因为它将在另一台机器上运行。基本上我只想使用从上面显示的 Mathematica 级别开始的相对路径。

4

2 回答 2

6

在 Mathematica 中,您可以使用 获取当前目录Directory[],也可以使用SetDirectory[]. 您可以使用 返回上一个位置,也可以使用ReserDirectory[]检查所有以前的位置DirectoryStack[]

这在此处的文档中进行了描述。

您可以将当前目录设置为笔记本正在使用的目录

SetDirectory[NotebookDirectory[]]

为了NotebookDirectory工作,您必须使用前端并且必须保存笔记本。

您始终可以使用相对于当前目录 ( Directory[]) 的路径,例如Import["data/somedata.txt"].

关于目录分隔符:/在所有 Windows/Linux/Mac 上始终有效。当您输入相对路径名时,仅/用于可移植性要比FileNameJoin.

于 2012-05-26T12:54:18.370 回答
2

我通常这样做。

SetDirectory[
  FileNameJoin[{$InitialDirectory, "dir1", "dir2"}]];
Quiet[Close["Log.txt"]];
logStream = Quiet[OpenWrite["xmlAreaTagsLog.txt"]];
xmlDoc = Import["XmlData.xml"];

使用 $InitialDirectory 可以让您获得 .nb 目录,使用 FileNameJoin 可以让您拥有相对访问权限。

于 2012-05-25T22:02:02.613 回答