除了简单的一次性程序外,每次需要时都必须定义所需的所有函数是不现实的。相反,您通常希望将它们保存在一个文件中,以便轻松编辑它们,并保存它们以备日后使用。
Octave不要求您在使用函数定义之前先从文件中加载它们。您只需要将函数定义放在Octave可以找到它们的地方。
当Octave遇到未定义的标识符时,它首先查找已经编译并当前列在其符号表中的变量或函数。如果在那里找不到定义,则会搜索目录列表(路径)对于以结尾的文件.m具有与未定义标识符相同的基本名称。5一旦Octave找到一个名称匹配的文件,就会读取该文件的内容。如果它定义了single函数,它被编译和执行。详见脚本文件,了解有关如何在一个文件中定义多个函数的详细信息。
当Octave从函数文件中定义函数时,它会保存读取的文件的全名和文件上的时间戳。如果文件上的时间戳发生更改,Octave可能会重新加载该文件。当Octave以交互方式运行时,时间戳检查通常在每次Octave打印提示时最多进行一次。如果当前工作目录发生更改,也会搜索新的函数定义。
通过检查时间戳,您可以在Octave运行时编辑函数的定义,并自动使用新的函数定义,而无需重新启动Octave会话。
为了避免通过检查不太可能更改的时间戳函数而不必要地降低性能,Octave假设目录树中的functionfileOctave原点/份额/Octave/版本/m不会更改,因此不必每次使用这些文件中定义的函数时都检查它们的时间戳。这通常是一个非常好的假设,并且为使用Octave分发的函数文件提供了显著的性能改进。
如果您知道在运行Octave时您自己的函数文件不会更改,则可以通过调用ignore_function_time_stamp(“全部”)
,这样Octave将忽略所有函数文件的时间戳。经过系统
到该函数将重置默认行为。
name
¶field value
¶value =
edit ("get", field)
¶value =
edit ("get", "all")
¶编辑命名函数,或更改编辑器设置。
如果编辑
以文件或函数的名称作为参数调用,它将在定义的文本编辑器中打开编辑器
.
.m
,将被考虑。如果仍然找不到文件,则带有前导的变体@
然后用两个aleading@
和拖尾.m
将被考虑。name.cc
则它将搜索name.cc在路径中,然后在编辑器中打开它。如果找不到文件,则使用新的.cc将创建文件。如果name恰好是一个m文件或命令行函数,那么该函数的文本将作为注释插入.cc文件中。警告您可能需要清除name在新的定义可用之前。如果您正在编辑.cc文件,则需要执行mkoct文件name.cc
在定义可用之前。
如果编辑
使用调用field和value变量,控制字段的值field将设置为value.
如果指定了输出参数,而第一个输入参数为get
然后编辑
将返回控制字段的值field。如果控制字段不存在,编辑将返回包含所有字段和值的结构体。因此编辑(“获取”,
返回完整的控制结构体。全部的
)
使用以下控制字段:
这是要放在新函数的“##作者:”字段后面的名称。默认情况下,它从壁虎
密码数据库的字段。
这是要在“作者”字段中的名称后面列出的电子邮件地址。默认情况下,它猜测<$LOGNAME@$HOSTNAME>
,如果$HOSTNAME
未定义它使用uname-n
。你可能想推翻这一点。一定要使用格式user@host
.
GNU通用公共许可证(默认)。
BSD风格的许可证,无广告条款。
公共field。
您自己的默认版权和许可证。
除非您指定pd’,编辑将在版权声明前加上“版权(C)YYYY作者”。
该值确定编辑器是应在异步模式(编辑器在后台启动,Octave继续)还是同步模式(Octave等待直到编辑器退出)下启动。将其设置为同步
以同步模式启动编辑器。默认为异步
详见系统
).
确定是否应在位编辑文件,而不考虑文件是否可修改。默认为真的
。将其设置为错误的
将只读函数文件自动复制到家,如果存在,则在编辑它们时。
此值表示在编辑器中打开系统m文件之前应将其复制到的目录。这样做的目的是,这个目录也在路径中,这样系统函数文件的编辑副本就会覆盖原始文件。此设置仅在就地编辑设置为错误的
。默认为空矩阵([]
),这意味着它没有被使用。以前版本的Octave中的默认值为八度.
()
¶("fullpath")
¶("fullpathext")
¶返回当前正在执行的文件的名称。
返回当前执行的脚本或函数的基本名称时不带任何扩展名。如果从m文件外部(如命令行)调用,则返回空字符串。
给定参数完整路径
,包括文件名的目录部分,但不包括扩展名。
给定参数fullpathext
,包括文件名的目录部分和扩展名。
val =
ignore_function_time_stamp ()
¶old_val =
ignore_function_time_stamp (new_val)
¶查询或设置内部变量,该变量控制Octave每次查找函数文件中定义的函数时是否检查文件上的时间戳。
如果内部变量设置为系统
,Octave不会自动重新编译的子目录中的函数文件Octave原点共有版本/m如果它们自上次编译以来发生了更改,但如果更改,将重新编译搜索路径中的其他函数文件。
如果设置为全部的
,Octave不会重新编译任何函数文件,除非使用删除了它们的定义清楚的
.
如果设置为没有一个
,Octave将始终检查文件上的时间戳,以确定是否需要编译函数文件中定义的函数。
版权所有 © 2024 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号