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

本文关键字:分配 成员 数据 net 读取 Math 类方法 | 更新日期: 2023-09-27 18:22:03

我有一个类库,其中包含使用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<>声明有点不同,所以我不确定出了什么问题。

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

您希望它输出什么?:

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