我希望有一个常量列表,可以在我编写的任何脚本或函数中随时使用。例如,在将使用hbar (Planck的常数)的脚本开始时,我一直在定义常量。
与之相反,我是否应该:
发布于 2016-11-03 09:19:44
如果您使用GNU,我建议使用杂项包和函数physical_constant
,它已经有了335常数。就你而言:
[val, uncertainty, unit] = physical_constant ("Planck constant over 2 pi")
val = 1.0546e-34
uncertainty = 4.7000e-42
unit = J s
如果您不想这样做,那么使用函数,而不是全局vars。
发布于 2016-11-03 04:13:19
正如你所说,有几种方法可以解决这个问题。为了解决您的第三个选项,它似乎最接近您想要的精神,您至少有两种方法来处理这个问题。
1.)如果变量需要是可变的。创建一个函数或脚本,该函数或脚本将变量初始化为您希望它们成为的变量。我将参考MATLAB文档,但基本上应该是相同的。
function initglobals()
global the_answer
the_answer = 42;
end
然后,每当您想在脚本中使用这些全局变量时,首先向Octave表示您将使用该变量作为全局变量:
...
global the_answer
disp(the_answer) %prints 42
...
为了使这更有用,我建议生成一个启动脚本并放入您的.octaverc
文档。这个启动脚本可以调用这个函数来初始化您的全局。
2.)如果全局应该是不可变的(例如,物理常数),则另一个选择是定义一个返回所需值的函数。
function [out] = the_answer()
out = 42;
end
然后,只需使用the_answer
访问常量即可。
在这两种情况下,您都希望将这些函数添加到路径中。创建函数集合并将它们放在某个位置,然后将该位置添加到您的路径中。文档
https://stackoverflow.com/questions/40396201
复制相似问题