对不起(非常基本)的问题。
我今天才决定尝试ILNumerics,因为我的相对简单的算法基本上是指简单的代数运算和相对基本的优化。
我的第一印象就是
-ILNumerics更容易理解(比方说Math.Net库),
-易于习惯语法,
-与其他库相比,强制转换为其他(主要是系统类型)要整洁得多。
幸运的是,我遇到了乘法和转置,但是,我对逆函数并不那么幸运。
我尝试了此链接建议的解决方案:
How to use ILMath.invert function?
基本上,逆计算如下:
ILArray<double> A = ILMath.rand(5,5);
ILArray<double> B = ILMath.linsolve(A, ILMath.eye(5, 5));
但是,当我复制/粘贴并尝试使用相同的方法来计算矩阵逆时,会出现以下错误:
An unhandled exception of type 'System.DllNotFoundException' occurred in ILNumerics.dll
Additional information: Unable to load DLL 'mkl_custom':
The specified module could not be found. (Exception from HRESULT: 0x8007007E)
**
我究竟做错了什么?这里缺少什么?怎么解决呢?
任何帮助表示赞赏。
在此先感谢您抽出宝贵的时间解决此问题。
最佳答案
只需使用nuget包“ ILNumerics”。这会将所有需要的二进制文件导入项目,并将文件复制到输出目录。
@Edit:nuget软件包不再维护。通过将二进制文件直接安装到System32文件夹中,新的ILNumerics Ultimate VS可以更好地解决该问题。对计算机上的所有项目都执行一次。 http://ilnumerics.net/download.html
关于c# - 如何在C#中使用ILNumerics ILMath计算矩阵的逆?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23562703/