matlab 找不到 mcr,如何在没有MCR / MATLAB的情况下在C#中使用MATLAB编译的DLL?

对不起,如果这个问题已被提出,但我找不到我一直在寻找的东西.我想知道是否有办法在C#中使用MATLAB编译的c-shared库而不使用MCR / MATLAB(或者通常任何其他安装),例如使用这个简单的函数test.m,通过mcc编译成.dll然后在C#中使用它:

[x,y,z]=test(a,b,c)

%x,a are integers

%y,z,b are matrices

%c is a string (which e.g. could be used to switch between several modes)

x=a*a;

y=b*b-b;

z=y*y;

我不完全确定是否可以(更不用说容易)这样做,但即使使用这个简单的例子,我也无法在C#中使用它,尽管这可能与我非常有限的C#体验有关.我想在这个例子中我将不得不使用IntPtr来处理矩阵,例如:

[DllImport("test.dll",EntryPoint="mlfTest")]

public static extern void testfunction([In] numargout, ref IntPtr x, ref IntPtr y, ref IntPtr z, [In] IntPtr a, [In] ref double[,] b, [In] ref c)

然后通过与Marshal一起工作来尝试从x,y,z中获取数据?我想我也犯了一些相当明显的错误,例如:我不确定我是否可以将ref double [,]传递给dll并期望它能够正常工作.

我想如果绝对必要的话我可以使用MCR(这会让事情变得更容易),但是现在我受到限制.

在此先感谢您的帮助.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值