我一直试图让MathNet.Numerics库工作。每次我尝试初始化矩阵时,我都会收到这个奇怪的运行时错误。我已经在互联网上搜索类似问题的帖子,没有任何运气。这让我相信我可能错过了一些可能显而易见的东西。我将描述我如何包含库以及创建错误的代码,尽管我不相信代码是问题,因为它是从math.net示例站点获取的,如何使用矩阵。 / p>
原来如此!我尝试了两种导入库的方法。第一个是打开 NuGet 程序包管理器控制台并编写 Install-Package MathNet.Numerics 这就是它!第二种方法是打开Manage NuGet Packages。然后搜索mathnet.numerics然后安装它。对我来说,这与前一种方法完全相同,对吧?
无论如何现在库似乎是导入的,这是因为我可以构建以下代码而没有任何错误。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MathNet.Numerics.LinearAlgebra; // Maybe unnecessary to include this one as well as the one below
using MathNet.Numerics.LinearAlgebra.Double;
namespace ConsoleApplication5
{
class Program
{
static void Main(string[] args)
{
Matrix<double> A = DenseMatrix.OfArray(new double[,] {
{1,1,1,1},
{1,2,3,4},
{4,3,2,1}});
Vector<double>[] nullspace = A.Kernel();
}
}
}
然后我构建它,这可能是问题所在。我怀疑了!我只是构建它,即右键单击解决方案并构建!没有错误!
然后当我运行程序时,当DeseMatrix.OfArray ....被驱逐时,我得到以下异常。
未处理的类型&#39; System.TypeInitializationException&#39;发生在MathNet.Numerics.dll中 附加信息:&#39; MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage`1&#39;的类型初始值设定项。抛出异常。
总结这个相当长的问题:我缺少什么?
PS。该项目必须与.Net 3.5一起运行。别担心,我也试过在.net 4.5中做同样的事情。我也在几台计算机上试过这个解决方案,赢得了7和8。
答案 0 :(得分:1)
我今天遇到了这个问题。我需要添加TaskParallelLibrary。右键单击引用,管理nuget包并在线搜索taskparallel。 这为我修好了。似乎是一种依赖。