3

我最近被分配了一项任务,将一些用 matlab 编写的算法转换为 VB.NET(如果 VB.NET 效率不高,则为 C#)。

matlab 代码本身由很多矩阵代数组成。我最初在这里查看并发现有一个 Matlab Coder 包装了 matlab 代码,但是当我提出该选项时,我被告知它是不可取的。

我被困在某种意义上,我不知道如何使用适当的工具来解决这个问题。

获取库通常可以接受吗(http://www.codeproject.com/Articles/5835/DotNetMatrix-Simple-Matrix-Library-for-NET 或http://www.planet-source-code.com/vb/ scripts/ShowCode.asp?txtCodeId=907&lngWId=10,这些是我唯一能找到的)来实现这些算法,还是通常不赞成?

我是否需要重新发明轮子并实现自己的代数算法(矩阵乘法、choleksy 分解等)?

基本上,我不确定完成这项任务的公认方式是什么,任何输入都会受到赞赏。如果这里不允许,我很抱歉,这是我第一次发帖,但我是一个很长一段时间的潜伏者。

4

3 回答 3

2

你有几种可能性。

如果你的应用程序可以承受加载时间MCR,你可以使用Matlab .NET Builder. 它将编译一个.NET类,该类将在MCR下面静默运行。您的所有客户端都将被迫安装MCR在他们的计算机上。

如果您的代码必须是本机代码,您可以重写代码或使用Matlab Coder,这会将代码转换为不可读的本机c++代码。

如果您选择重写代码,我建议您在 上找到LAPACK线性代数例程的实现.NET,因为 Matlab 是基于它们的。

于 2012-09-05T14:47:19.207 回答
1

这样的代码已发布,因此可以使用和学习。只需确保代码的许可证(如果有)适合您的情况。

于 2012-09-05T14:42:36.820 回答
1

您可以通过 COM 接口从 VB.net 访问 Matlab 函数

http://www.mathworks.com/help/matlab/matlab_external/view-matlab-functions-from-visual-basic-object-browser.html

于 2014-01-28T17:26:17.373 回答