【问题标题】:Compiler error calling MathNet Numerics DelimitedWriter.WriteFile编译器错误调用 MathNet Numerics DelimitedWriter.WriteFile
【发布时间】:2019-08-21 02:40:19
【问题描述】:

我正在尝试使用 DelimitedWriter 将 DenseMatrix 对象写入 csv 文件,如下所示:

DelimitedWriter.WriteFile(originalData, "written.csv", ",");

会出现一条红线,表示方法的类型参数不能从用法中推断出来,并明确指定类型参数。 所以我尝试这样做:

DelimitedWriter.WriteFile<Double>(originalData, "written.csv", ",");

我得到了,“最好的重载匹配...有一些无效的参数”。

还有这个:

DelimitedWriter.WriteFile<Double>(originalData<Double>, "written.csv", ",");

我得到的 originalData 不能与类型参数一起使用。 我还尝试将 originalData 转换为矩阵(而不是 DenseMatrix),但这也不起作用。我不确定我在这里缺少什么。有什么想法吗?

【问题讨论】:

    标签: c# math.net mathnet-numerics


    【解决方案1】:

    这看起来像是 Math.NET nuget 包的内部版本控制问题,即使您尝试为第一个参数传递空文字,您也会收到错误。

    我注意到 Intellisense 说它需要 MathNet.Numerics.LinearAlgebra.Generic.Matrix&lt;T&gt;,但在 Math.NET 3.0+ 版本中,该类型是 MathNet.Numerics.LinearAlgebra.Matrix&lt;T&gt;

    您可能想尝试从包管理器控制台安装文本 IO 扩展表示它支持的特定版本:

    Uninstall-Package MathNet.Numerics -Force
    Install-Package MathNet.Numerics -Version 2.5.0
    

    这对我有用。我不确定何时进行了重大更改,大概是 3.0 版。您应该将此作为问题报告给维护人员。

    【讨论】:

      【解决方案2】:

      将 v3 版本的数据扩展与 v3 版本的 Math.NET Numerics 一起使用。

      截至今天,例如使用MathNet.Numerics.Data.Text v3.0.0-beta02 包。您可能需要在 NuGet 中允许预发布包,否则此版本可能不会出现。不幸的是,由于一些待定的更改,该软件包还没有完整的 v3 版本。

      不要不要降级到 Math.NET Numerics v2。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-09-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-21
        • 1970-01-01
        • 2011-07-13
        • 1970-01-01
        相关资源
        最近更新 更多