Я предполагаю, что вы используете NE Toolbox?
Если это так, в C # это то, как вы бы это сделали.
Функция Matlab cellexamp.m:
function out = OutInt
num = 10;
out = { num };
Запустите deploytool в Matlab
MATLAB Builder для .NET -> .NET Компонент Имя проекта / компонента: MyOutIntProject Имя класса: MyOutIntClass
C #:
using System;
using MathWorks.MATLAB.NET.Utility;
using MathWorks.MATLAB.NET.Arrays;
using MyOutIntProject;
namespace IntTest
{
class CellExampleApp
{
static void Main(string[] args)
{
MWCellArray myIntCell = null;
try
{
MyOutIntClass obj = new MyOutIntClass();
myIntCell = (MWCellArray)obj.OutInt();
MWNumericArray item = (MWNumericArray)cellexp[1];
Console.WriteLine("item is {0}", item);
double[,] native = (double[,])item.ToArray(MWArrayComponent.Real);
Console.ReadLine();
}
catch (Exception exception)
{
Console.WriteLine("Error: {0}", exception);
}
}
}
}
Несмотря на то, что ваша переменная num выглядит как int, Matlab перемещает все назад и вперед через свой MWNumericArray.Ваша собственная переменная [0,0] в этом случае будет '10'.
В этом примере показано Здесь показано, как использовать MWArray.dll для перемещения строк, массивов и целых чисел