Как интегрировать MATLAB в C #? - PullRequest
0 голосов
/ 22 июня 2011

У меня есть пользовательские интерфейсы, реализованные с использованием C # .NET и процедуры обработки изображений, разработанной в MATLAB. Поэтому мне нужно знать способ интеграции MATLAB в C # .NET, чтобы использовать эти два процесса как одну систему .....

Ответы [ 2 ]

0 голосов
/ 26 июля 2014

Как вызывать пользовательские функции 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();
}
0 голосов
/ 22 июня 2011
...