[英]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
的方式:
save
和load
命令可用于存储工作区的 state。
例如,如果您在工作区中定义了变量:
>> c = 4
c = 4
>> d = 5
d = 5
您可以使用 save 命令保存这两个变量:
>> save myvariables.mat
这会将c
和d
保存到提到的文件中。 稍后可以使用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.