我有一个C#应用程序,我通过Nuget安装了MathNet.Numerics 3.17.0。
我正在尝试使用傅里叶函数。当我运行这行代码时:
Fourier.Forward2D(n);
抛出异常“指定的方法不受支持”。
Console.WriteLine(MathNet.Numerics.Control.LinearAlgebraProvider.ToString());
返回“托管”。
我发誓这是有效的,但现在已经坏了。
关于如何使这项工作的任何想法?
仅供参考我使用MKL包一分钟,这似乎有效。我想使用本机包“Managed”,因为我通过clickonce分发应用程序....
任何想法都赞赏!
答案 0 :(得分:2)
不幸的是,在v3.15中确实添加了2D和多维FFT支持,仅支持MKL提供程序,但不支持托管提供程序。见release notes。这是特殊的,因为Math.NET Numerics的一个基本目标是托管提供程序应该是功能完整的。我们当然希望填补这一空白,但不幸的是,我无法及时估计我们何时会在那里。
答案 1 :(得分:0)
由于仍然缺乏对 Fourier2D 的托管支持,以下是在可行的情况下如何使用本机包:
MathNet.Numerics.Control.UseNativeMKL();
还需要导入“MathNet.Numerics.MKL.Win”(或其他适用于您的平台)包以将英特尔 MKL 支持添加到 MathNet。