繁体   English   中英

将 am 文件中的定义加载到 GNU Octave 工作区

[英]Load definitions in a .m file into GNU Octave workspace

我写了一个定义了许多矩阵的文件。 现在,我想添加其中的一些,并进行一些其他操作。 现在我可以在文件本身中编写这些操作并在 octave-cli 中运行以查看结果,但我想加载定义,并在 octave GUI 的输入字段中一一进行操作(类似于可以在数学笔记本中完成),但我不想再次在 octave gui 中手动输入所有行。 如何将线条加载到 octave 的工作区?

例如,假设somedefinitions.m的内容是

function somedefinitions()
c = 4;
d = 5;

现在我希望将其加载到 octave gui,并希望在输入字段中评估 c+d、c*d 等(但我不想在 octave-gui 中手动编写 c 和 d 的定义)。

这个怎么做? 我尝试load somedefinitions.m但这表示它无法确定文件格式。

您无法加载somedefinitions ,因为它不是数据。 如果您调用文件somedefinitions.m但不将其设为 function,那么您可以在主代码中调用somedefinitions 这将执行somedefinitions.m中的所有内容并将其加载到工作区中。 然后你可以在命令 window 中做任何你想做的事情。 你现在不能这样做,因为函数有自己的工作空间,所以即使你不这样做,变量也会在一些定义中somedefinitions ,但在完成时会被删除。 简而言之,删除示例的第一行,然后调用该脚本。

只是为了添加另一种以您最初预期的方式使用load的方式:

saveload命令可用于存储工作区的 state。

例如,如果您在工作区中定义了变量:

>> c = 4
c =  4

>> d = 5
d =  5

您可以使用 save 命令保存这两个变量:

>> save myvariables.mat

这会将cd保存到提到的文件中。 稍后可以使用load将它们检索回工作区。 例如:

清除工作区并验证它是空的:

>> clear
>> whos

将保存的变量加载回:

>> load myvariables.mat
>> whos
Variables in the current scope:

   Attr Name        Size                     Bytes  Class
   ==== ====        ====                     =====  =====
        c           1x1                          8  double
        d           1x1                          8  double

在此之后,您可以对变量执行任何您想要的操作。

上面安德的方法也可以。 在这种情况下,您将保存一个脚本文件(不是函数),它只是保存在 m 文件中的命令列表,然后 Octave 可以从命令行执行。 他的方法的优点是很容易修改变量的创建,并且保留了变量的创建方法。 如果工作空间包含需要大量时间的复杂计算的 output,那么保存工作空间可能是一种节省时间的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM