Как вызывать пользовательские функции matlab из C # /. NET:
Я объяснил это однажды здесь в деталях. Для этого метода интеграции вам понадобится Deployment Tool из matlab, чтобы скомпилировать ваши функции matlab в сборки dll, на которые может ссылаться C # /. NET.
Чтобы подвести итог, это шаги:
1) Напишите ваши функции Matlab (m файлов) и сохраните их. Вы будете вызывать эти функции из C # /. NET
2) Откройте Средство развертывания (deploytool) в matlab и добавьте все файлы matlab m в пакет, названный, например, MyMatlabFunctions.prj
3) Добавьте класс для развертывания пакета с именем, подобным MyMatlabClass . Этот класс будет содержать переводы (или компиляции) .NET ваших функций matlab.
4) Сборка пакета MyMatlabFunctions.prj с deploytool. Сгенерированный MyMatlabFunctions.dll будет указан в нашем проекте Visual Studio.
5) Добавьте ссылки, связанные с matlab (dll's) MatCode.dll и MWarray.dll , в ваш проект Visual Studio.
6) Напишите метод C # / .NET, который вызывает перевод dll ваших функций matlab. Простой пример ниже: Добавление матрицы (addMatrices.m)
static public void SimpleMatrixAddition()
{
double[,] a = { { 2, 3 }, { 5, 6 }, { 8, 9 } }; //Matrix 1
double[,] b = { { 1, 2}, { 4, 5}, { 7, 8} }; //Matrix 2
MWNumericArray arr1 = a;
MWNumericArray arr2 = b;
MyMatClass obj = new MyMatClass();
// call matlab function (addMatrices.m)
MWArray result = (MWNumericArray)obj.addMatrices((MWArray)arr1, (MWArray)arr2);
// display matlab matrix
Console.WriteLine("matlab matrix:\n" + result);
Console.ReadKey();
}