我正在使用 ILNumerics 来表示一些时间序列。
理想情况下,我希望将所有数据封装为面向对象,因此,使用实例变量和实例方法来处理这些变量。
我有几个问题,但都与在类中以有效方式实现 ILArray 的最佳方式以及可能作为实例变量的最佳方式有关。我浏览了相关文档并检查了以前的 SO 示例,但似乎没有一个明确解决这些问题。
首先:网站上提出的“数组利用类”[来源: http: //ilnumerics.net/ClassRules.html ] 的示例似乎无法编译,至少在 ILNumerics 试用版和 VS 2013 专业版(.net 4.5)中. 我错过了什么吗?
还是因为这部分代码:
public ILRetArray<double> A
{
get
{
// lazy initialization
if (m_a.IsEmpty)
{
m_a.a = ILMath.rand(100,100);
}
}
set { m_a.a = value; }
没有退货声明?
在上述示例中,可以通过以下实例方法修改 m_a 数组:
public void Do()
{
using (ILScope.Enter())
{
// assign via .a property only!
m_a.a = m_a + 2;
}
}
如何访问向量的特定分量:假设我们想要 m_a[0] = 2.2; 这会妨碍内存管理吗?
作为一般性观察,在我看来,使用 ILNumerics 的自然方式是通过静态方法,因为人们会在 Fortran(或可能在 R/Matlab 中)编写代码:到目前为止,这就是我使用它的方式。我是对的还是将 ILArray 类型作为实例变量和相关方法的类定义应该同样有效和直接?
或者,您是否建议采用 System 数组作为实例变量,然后仅通过静态方法导入/导出到 ILarray 以执行数组操作?我倾向于避免这条路,或者我想尽可能地限制它。