【问题标题】:How does one correctly use octave function files?如何正确使用八度函数文件?
【发布时间】:2021-11-21 19:13:37
【问题描述】:

在熟悉 GNU Octave 时,我遇到了一个我不是第一次遇到的问题,这里描述了这个问题:

Run octave script file containing a function definition

既然将函数放入函数文件似乎是正确的做法,我想知道我和该问题的作者是否没有正确使用函数文件.打算如何使用它们?他们的目的是什么?还是我写脚本文件是对的?

【问题讨论】:

  • 您实际上是在询问函数(或确切地说是“函数文件”)和脚本之间的区别。也可能是定义为正确函数文件的函数与命令行/现场定义函数(例如,作为脚本的一部分)之间的区别。令人困惑,我知道。以下是手册中的相关页面:Function files / Scripts (and function definitions inside a script)。也值得一读:stackoverflow.com/a/55812060/4183191
  • @TasosPapastylianou 非常感谢!我试图运行 .m 文件,但这并不好。我只是将工作目录设置为文件所在的文件夹,我没有加载文件,而是信任 Octave 自动扫描文件夹,并且它工作。也许您应该发表评论作为答案。

标签: octave


【解决方案1】:

函数文件的文件名应与其导出的函数相同,即文件中的第一个函数。

在您提到的问题中,他只需将文件命名为rectfibo.m就可以逃脱;那将是一个函数文件。但是,那里的讨论是关于如何从脚本文件中导出函数,这是与函数文件不同的动物。

【讨论】:

  • 谢谢,但重点是我想向它传递一些参数。后来,我什至想生成一个函数图!
  • 这就是为什么你应该把它变成一个函数而不是一个脚本的另一个原因!正如我所说,只有文件中的第一个函数是文件的接口,它可能包含任意数量的其他函数。该界面使其更加通用和可共享。此外,函数不必返回值,并且可能具有绘图等副作用。我经常看到人们开始在脚本中对一个想法进行原型设计,然后在它变得更加成熟时将其转换为一个函数。并不是说脚本在生态系统中没有它们的实用性。
【解决方案2】:

在 cmets 中发现我在尝试加载函数文件时犯了错误,而我应该把它放在当前工作目录中(可以在设置中选择),Octave 会自动读取它。

重启Octave后,做了以上调整,效果很好。

【讨论】:

  • 或者,您可以简单地将该文件夹添加到您的“路径”中。详情请查看here
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-26
  • 1970-01-01
  • 1970-01-01
  • 2022-01-11
  • 2013-07-10
  • 1970-01-01
相关资源
最近更新 更多