11.10.1操作加载路径

当调用函数时,Octave会搜索包含函数语句的文件的目录列表。此目录列表称为加载路径。默认情况下,加载路径包含与Octave一起分发的目录列表以及当前工作目录。要查看当前加载路径,请调用path函数,没有任何输入或输出参数。

可以使用向加载路径添加目录或从加载路径删除目录addpathrmpath。例如,以下代码添加了~/Octave到加载路径。

addpath ("~/Octave")

在此之后,目录~/Octave将搜索函数。

 
: addpath (dir1, …)
: addpath (dir1, …, option)
: oldpath = addpath (…)

将命名目录添加到函数搜索路径中。

如果option"-begin"或0(默认值),将directoryname前置到当前路径。如果option"-end"或1,将目录名附加到当前路径。添加到路径中的目录必须存在。

除了接受单独的目录参数外,目录名列表还从pathsep也被接受。例如

addpath ("dir1:/dir2:~/dir3")

新添加的路径显示在加载路径中的顺序与它们显示在的参数中的顺序相同addpath。将加载路径扩展到前端时,首先添加参数列表中的最后一个路径。将加载路径添加到末尾时,首先添加参数列表中的第一个路径。

对于添加的并且不在路径中的每个目录,addpath检查名为的文件是否存在PKG_ADD(注意缺少.m扩展名),并在存在时运行它。

详见: path, rmpath, genpath, pathdef, savepath, pathsep.

广告
 
: pathstr = genpath (dir)
: pathstr = genpath (dir, skipdir1, …)

返回构建自的路径dir及其所有子目录。

路径不包括包目录(以“”开头+),旧式类目录(以'开头@’), private目录或这些类型的任何子目录。

如果提供了额外的字符串参数,则生成的路径将不包括具有这些名称的目录。

详见: path, addpath.

广告
 
: rmpath (dir1, …)
: oldpath = rmpath (dir1, …)

去除dir1,…来自当前函数搜索路径。

除了接受单独的目录参数外,目录名列表还从pathsep也被接受。例如

rmpath ("dir1:/dir2:~/dir3")

对于被移除的每个目录,rmpath检查名为的文件是否存在PKG_DEL(注意缺少.m扩展名),并在存在时运行它。

详见: path, addpath, genpath, pathdef, savepath, pathsep.

广告
 
: savepath
: savepath file
: status = savepath (…)

将当前函数搜索路径的唯一部分保存到file.

保存在中的文件夹列表file包括为Octave自己的函数添加的文件夹,这些文件夹属于Octave包(详见pkg load),以及通过命令行开关添加的。

如果file被省略,Octave在当前目录中查找特定于项目的.octaverc保存路径信息的文件。如果不存在此类文件,则用户的配置文件~/.octaverc使用。

如果成功,savepath返回0。

这个savepath函数使自定义用户的配置文件以恢复Octave特定实例所需的工作路径变得简单。假设没有指定文件名,Octave将自动从相应的.octaverc文件。如果指定了文件名,则可以通过调用手动恢复路径source file.

详见: path, addpath, rmpath, genpath, pathdef.

广告
 
: path ()
: str = path ()
: str = path (path1, …)

修改或显示Octave的加载路径。

如果narginnargout为零,以易读的格式显示Octave加载路径的元素。

如果nargin为零且nar痛风大于零,则返回当前加载路径。

如果nargin大于零,将参数连接起来,用分隔pathsep。设置结果的内部搜索路径并返回。

不检查重复元素。

详见: addpath, rmpath, genpath, pathdef, savepath, pathsep.

广告
 
: val = pathdef ()

返回Octave的默认路径。

路径信息是从四个源中的一个源中提取的。按偏好排序,可能的来源有:

  1. .octaverc
  2. ~/.octaverc
  3. <OCTAVE_HOME>/…/<version>/m/startup/octaverc
  4. 任何octaverc文件更改之前Octave的路径。

详见: path, addpath, rmpath, genpath, savepath.

广告
 
: val = pathsep ()

查询用于分隔路径中目录的字符。

详见: filesep.

广告
 
: rehash ()

重新初始化Octave的加载路径目录缓存。

广告
 
: fname = file_in_loadpath (file)
: fname = file_in_loadpath (file, "all")

返回的绝对名称file如果可以在指定的目录列表中找到path.

如果未找到任何文件,则返回一个空字符串。

file已经是一个绝对名称,将根据文件系统而不是Octave的加载路径检查该名称。在这种情况下,如果fileexistsit将在中返回fname,否则返回一个空字符串。

如果第一个参数是字符串的元胞数组,则在加载路径的每个目录中搜索元胞数组的元素,并返回匹配的第一个。

如果第二个可选参数"all"返回一个cellarray,其中包含路径中具有相同名称的所有文件的列表。如果未找到任何文件,则返回一个空的元胞数组。

详见: file_in_path, dir_in_loadpath, path.

广告
 
: pathstr = restoredefaultpath ()

将Octave的路径恢复到启动时的初始状态。

重新初始化的路径将作为输出返回。

详见: path, addpath, rmpath, genpath, pathdef, savepath, pathsep.

广告
 
: pathstr = command_line_path ()

返回解释器启动时在命令行中提供给Octave的路径参数(路径arg ).

详见: path, addpath, rmpath, genpath, pathdef, savepath, pathsep.

广告
 
: dirname = dir_in_loadpath (dir)
: dirname = dir_in_loadpath (dir, "all")

返回匹配的loadpath元素的绝对名称dir如果可以在指定的目录列表中找到path.

如果未找到匹配项,则返回一个空字符串。

匹配在每个路径元素的末尾执行。例如,如果dir"foo/bar",它与path元素匹配"/some/dir/foo/bar",但不是"/some/dir/foo/bar/baz" "/some/dir/allfoo/bar"dir是一个绝对名称,而不仅仅是一个路径片段,它与Octave的加载路径之外的文件系统相匹配。在这种情况下,如果dir它将被归还dirname,否则返回一个空字符串。

如果提供了可选的第二个参数,则返回一个包含所有名称匹配项的元胞数组,而不仅仅是第一个。

详见: file_in_path, file_in_loadpath, path.

广告
 
: current_encoding = mfile_encoding ()
: mfile_encoding (new_encoding)
: old_encoding = mfile_encoding (new_encoding)

查询或设置用于读取m文件的编码。

输入和输出是命名编码的字符串。,"utf-8".

Octave的解析器在读取m文件时使用此编码,除非使用函数为包含m文件的特定目录设置了不同的编码dir_encoding或在文件中.oct-config在那个目录中。

特殊价值"system"选择与系统区域设置匹配的编码。

如果在m文件已经被解析之后m文件编码被更改,则必须再次解析这些文件才能使该更改生效。这可以与命令相关联clear all.

此外,这种编码用于在Octave的GUI中使用内置的ineditor加载和保存文件。

详见: dir_encoding.

广告
 
: current_encoding = dir_encoding (dir)
: dir_encoding (dir, new_encoding)
: dir_encoding (dir, "delete")
: old_encoding = dir_encoding (dir, new_encoding)

查询或设置encoding用于读取中的m文件dir.

每个目录的编码覆盖(全局设置的)m-file编码,详见mfile_encoding.

字符串DIR必须匹配目录在加载路径中的显示方式。

这个new_encoding输入必须是有效的编码标识符或"delete"。在后一种情况下,任何每个目录的编码都将被删除,并且(全局设置的)m-file编码将用于给定的dir.

只有在指定outputagment时,才会返回当前或以前使用的编码。

目录编码自动从文件中读取.oct-config当新路径添加到加载路径时(例如addpath).若要为同一文件夹中的所有文件设置编码,该文件必须包含以开头的一行"encoding="后面跟着编码标识符。

例如,要将同一文件夹中所有文件的文件编码设置为ISO 8859-1(Latin-1),请创建一个文件.oct-config内容如下:

encoding=iso8859-1

如果在解析文件后更改了文件编码,则必须再次解析文件才能使更改生效。这可以通过命令完成clear all.

详见: addpath, path, mfile_encoding.

广告

版权所有 © 2024-2025 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号-2