将Matlab转换为VB.NET

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分解等)实现自己的算法吗?

基本上,我不确定完成这项任务的接受方式是什么,欢迎任何意见。如果这在这里不被允许,我很抱歉,这是我第一次发帖,但我是一个长期潜水者。


关于在VB.NET下的矩阵问题,我相信你可以找到很多资源。不需要发明任何东西,节省你的时间。如果你想看的话,这里有另一种解决方案 - unloco
这是一个C#的演示(你可以轻松地将C#转换为VB.NET):http://www.mathworks.com/matlabcentral/fileexchange/12987-integrating-matlab-with-c - Tim Schmelter
你需要做的是向给你这个任务的人提出这个问题。如果这是一项作业,你可能需要编写线性代数工具。如果这是工作,你应该使用现有的技术。 - Simon Bergot
3个回答

2

您有几种选择。

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

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

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



1

这样的代码是公开发布的,以便于使用和学习。只需确保该代码的许可证(如果有)适合您的情况。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接