MWHttpClientВ этом примере показано, как записать приложение C # для вызова MATLAB® функция, развернутая в MATLAB Production Server™. Приложение C # использует клиентскую библиотеку MATLAB Production Server .NET.
Прикладной программист .NET обычно выполняет эту задачу. Учебное руководство предполагает, что у вас есть Microsoft® Визуальная студия® и .NET, установленный на вашем компьютере.
Откройте Microsoft Visual Studio.
Нажмите File > New > Project.
В диалоговом окне «Новый проект» выберите шаблон, который необходимо использовать. Например, если необходимо создать консольное приложение C # в Visual Studio 2017, выберите Visual C# > Windows Desktop в левой панели навигации, затем выберите Console App (.Net Framework).
Введите имя проекта в поле Name (для примера, Magic).
Нажмите OK. Ваши Magic создаётся исходный интерпретатор, обычно именованная Program.cs, по умолчанию.
Создайте ссылку в своем Magic проект в библиотеку среды выполнения клиента MATLAB Production Server. В Microsoft Visual Studio выполните следующие шаги:
На панели Solution Explorer в Microsoft Visual Studio (обычно с правой стороны) щелкните правой кнопкой мыши Magic выберите Add > Browse.
Перейдите к расположению библиотеки среды выполнения клиента MATLAB Production Server .NET.
Библиотека находится в . Выберите matlabroot\ toolbox\compiler _ sdk\mps _ client\dotnetMathWorks.MATLAB.ProductionServer.Client.dll файл.
Клиентская библиотека также доступна для загрузки по адресу https://www.mathworks.com/products/matlab-production-server/client-libraries.html.
Нажмите OK. Ваш проект Microsoft Visual Studio теперь ссылается на MathWorks.MATLAB.ProductionServer.Client.dll.
Написание функции MATLAB mymagic который использует magic функция для создания магического квадрата, упаковать mymagic в развертываемый архив под названием mymagic_deployedзатем разверните его на сервере. Функция mymagic принимает одну int Вход и возвраты магический квадрат как 2-D double массив. Пример принимает, что образец сервера работает в http://localhost:9910.
function m = mymagic(in)
m = magic(in);
Активируйте развернутую функцию MATLAB mymagic от клиента .NET через интерфейс .NET. Создайте интерфейс C # Magic для соответствия функции MATLAB mymagic.
Интерфейс .NET имеет то же количество входов и выходов, что и функция MATLAB.
Поскольку вы развертываете одну функцию MATLAB на сервере, вы задаете один соответствующий метод .NET в коде C #.
Функция MATLAB и интерфейс .NET обрабатывают одни и совпадающие типы данных - входной тип int и выход 2-D double.
В клиентской программе C # используйте интерфейс Magic для определения типа ссылки на прокси-объект в CreateProxy способ. The CreateProxy метод требует URL для развертываемого архива, который содержит mymagic функция (http://localhost:9910/mymagic_deployed) как входной параметр.
public interface Magic
{
double[,] mymagic(int in1);
}
Откройте проект Microsoft Visual Studio Magic который вы создали ранее.
В Program.cs вкладка, вставьте в код ниже.
using System;
using System.Net;
using MathWorks.MATLAB.ProductionServer.Client;
namespace Magic
{
public class MagicClass
{
public interface Magic
{
double[,] mymagic(int in1);
}
public static void Main(string[] args)
{
MWClient client = new MWHttpClient();
try
{
Magic me = client.CreateProxy<Magic>
(new Uri("http://localhost:9910/mymagic_deployed"));
double[,] result1 = me.mymagic(4);
print(result1);
}
catch (MATLABException ex)
{
Console.WriteLine("{0} MATLAB exception caught.", ex);
Console.WriteLine(ex.StackTrace);
}
catch (WebException ex)
{
Console.WriteLine("{0} Web exception caught.", ex);
Console.WriteLine(ex.StackTrace);
}
finally
{
client.Dispose();
}
Console.ReadLine();
}
public static void print(double[,] x)
{
int rank = x.Rank;
int[] dims = new int[rank];
for (int i = 0; i < rank; i++)
{
dims[i] = x.GetLength(i);
}
for (int j = 0; j < dims[0]; j++)
{
for (int k = 0; k < dims[1]; k++)
{
Console.Write(x[j, k]);
if (k < (dims[1] - 1))
{
Console.Write(",");
}
}
Console.WriteLine();
}
}
}
}Значение URL-адреса ("http://localhost:9910/mymagic_deployed"), используемый для создания прокси, содержит три части.
адрес сервера (localhost).
номер порта (9910).
имя архива (mymagic_deployed).
Создайте приложение. Щелкните Build > Build Solution.
Запустите приложение. Щелкните Debug > Start Without Debugging. Программа возвращает следующие выходы консоли.
16,2,3,13 5,11,10,8 9,7,6,12 4,14,15,1