C#:MWArray 和获取类的实例
Posted
技术标签:
【中文标题】C#:MWArray 和获取类的实例【英文标题】:C#: MWArray and Getting an Instance of Class 【发布时间】:2013-09-26 12:30:19 【问题描述】:使用 MATLAB Compiler Runtime (mcr) 我创建了 entropy.m 的 dll,选择 FrameWork 版本 4.0。我已将此 dll 添加到 c# 引用中。我还必须添加 MWArray.dll 来为方法创建所需的参数。
> public class Entropy : IDisposable
>
> //Constructors,Finalize,Methods,Class Members are located here.
>
> using com.Entropy;
> using MathWorks.MATLAB.NET.Arrays;
> using MathWorks.MATLAB.NET.Utility;
这是我的问题。我正在尝试获取 Entropy 类的实例,例如
Entropy ep = new Entroyp();
但是它会抛出一个异常:
> The type initializer for 'com.Enthropy.Enthropy threw an exception.
此外,当我尝试创建 MWNumericArray
时,它会引发相同的异常。我试图将我的项目的框架版本更改为 4.0,但它不起作用。这个错误的原因是什么?
此外,我还查看了下面的链接。
ACCESSING MATLAB FUNCTIONS FROM C#.NET
Using MATLAB Builder NE
Is there an example of using the "MWArray" data type in a .NET language such as C# with a MATLAB Builder for .NET component?
【问题讨论】:
【参考方案1】:好的。安装 MCR 后,我一开始就做完了所有事情。创建了 entropy.m 的 dll。然后我打开了我的项目的早期版本,我的意思是我删除了添加的引用; MWArray.dll
和 Entropy.dll。之后,我将这些引用添加到我的项目中。现在它工作正常。
重点:
1) 在创建任何 MatLab 函数 INSTALL MCR 的 dll 文件之前。
2)在创建 dll 时,尝试为类和项目赋予不同的名称。我的意思是,如果您创建名称为Entropy.prj
的项目,请不要将您的类名称创建为Entropy
。
3)不要忘记将MWArray.dll
添加到您的项目中。它的位置是
(..//Program Files(x86)//MATLAB\MATLAB CompilerRuntime\v81\toolbox\dotnetbuilder\bin\win32\v2.0)
【讨论】:
以上是关于C#:MWArray 和获取类的实例的主要内容,如果未能解决你的问题,请参考以下文章
如何在“mwArray *”和“mxArray *”之间传输数据?