在类方法中读取的Math.net数据未分配给类成员

时间:2015-11-15 16:39:19

标签: c# mathdotnet

我有一个使用Math.net的对象的类库。该库包含包含数据和方法的类。作为试验,我实例化成员类的对象,然后调用load方法用文件中的数据填充对象。但是,加载的数据不会传递给新对象。当我将对象转储到屏幕上时,我得到:

  

EchoStateNet.EchoState +输入

我应该在哪里获得数据转储。在库下面有类定义和测试它的测试。

namespace EchoStateNet
{
    public class EchoState
    {
        // class that holds network input data
        public class Input
        {
            public Matrix<double> dataSet { get; set; }     // matrix holding train / test / run input data           

            public Input() : base() { }     // default constructor

            // method to load network data
            public void load(string filePath, string fileName)
            {
                try
                {
                    dataSet = DelimitedReader.Read<double>(Path.Combine(filePath, fileName), false, ",", false);   // read the input data
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Error loading data. Exception: " + ex);
                }
            }           

        }

这个部分称之为:

namespace TestApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            EchoState.Input data = new EchoState.Input();

            data.load("..\\..", "MackeyGlass_t17.txt");

            Console.WriteLine("Input data:");
            Console.WriteLine(data.ToString());
        }
    }
}

我得到的输出告诉我,我可能没有正确实例化对象,但Math.net的语法与典型的List<>声明略有不同,所以我不确定什么错了。

1 个答案:

答案 0 :(得分:0)

您希望输出什么?:

data.ToString()

您的Input类永远不会覆盖.ToString()方法,因此System.Object的默认实现是输出类名。这是:

  

EchoStateNet.EchoState +输入

如果要输出其他内容,请覆盖班级中的.ToString()方法。像这样:

public override string ToString()
{
    // return some string representation here
}

至于对象的有效字符串表示应该,这取决于你。您的对象所拥有的唯一状态是Matrix<double>。我不熟悉那种类型,所以我不知道人们可能期望它看起来像什么。但无论你想要什么,你都可以使用ToString()方法格式化(使用StringBuilder和/或string.Format()之类的内容并返回结果string。< / p>