matlab中的数组传递给C#
时间: 2023-09-14 21:11:43 浏览: 131
要将 Matlab 中的数组传递给 C# 程序,可以使用 Matlab 自带的 COM 组件,将 Matlab 中的数组转换为 COM 对象,然后在 C# 中通过 COM 互操作来获取这些数据。
以下是实现步骤:
1. 在 Matlab 中,创建一个新的 COM 对象:
```
com_obj = actxserver('Matlab.Application');
```
2. 将数组传递给 COM 对象:
```
data = [1, 2, 3];
com_obj.PutWorkspaceData('data', 'base', data);
```
3. 在 C# 中,使用 COM 互操作来获取这些数据:
```
using Matlab;
...
MLApp.MLApp matlab = new MLApp.MLApp();
object result = null;
matlab.Execute("com_obj = actxserver('Matlab.Application')");
matlab.Feval("com_obj.GetVariable", 1, out result, "data");
object[] res = result as object[];
double[] data = res[0] as double[];
```
在上面的代码中,我们首先创建了一个 `MLApp.MLApp` 对象来与 Matlab 进行交互,然后通过 `matlab.Execute` 方法执行了 Matlab 脚本,创建了一个 COM 对象。接着,我们使用 `matlab.Feval` 方法来调用 Matlab 函数,获取了 COM 对象中的数据。最后,将获取到的数据转换为 C# 中的 double 数组。
阅读全文