Вызов MATLAB в JavaScript

#javascript #matlab

#javascript #matlab

Вопрос:

Я новичок в JavaScript и кодирую простую веб-игру, используя JavaScript для своих исследований. Люди могут играть в игру, и некоторые данные будут собраны. Собранные данные должны быть обработаны MATLAB, и результаты будут возвращены в код JavaScript. Код JavaScript будет выполняться на стороне клиента, а MATLAB — на стороне сервера.

Как программа JavaScript может вызывать функции в MATLAB, а также получать данные из MATLAB? Я искал в Интернете и обнаружил, что MATLAB может использоваться в качестве сервера автоматизации, а затем вызываться веб-приложениями ( http://www.mathworks.com/help/matlab/matlab_external/call-matlab-functions-from-a-web-application.html).

По ссылке приведен пример использования VBScript для вызова файлов MATLAB. Однако я не могу найти какой-либо ресурс для использования JavaScript для вызова. Что мне делать с JavaScript? Кроме того, есть ли способ, которым JavaScript может взаимодействовать с MATLAB?

Ответ №1:

Ваш вопрос несколько расплывчатый. Это веб-приложение, поэтому в нем участвуют две стороны: серверная и клиентская. Нужно ли вызывать MATLAB на стороне сервера или на стороне клиента?

Предполагая, что это на стороне сервера, существует несколько вариантов

1) Упомянутый вами сервер автоматизации COM работает, только если сервер работает под управлением Windows, потому что COM предназначен только для Windows.

2) Каким-либо образом совместите серверный код с C / C , например, с помощью CGI, и используйте код C / C для вызова движка MATLAB.

3) Используйте MATLAB Builder JA для преобразования кода MATLAB в файл JAR, который может быть вызван из вашего веб-приложения на основе Java. Аналогичным образом, вы можете использовать MATLAB Builder EX для преобразования кода MATLAB в библиотеку DLL .NET assembly, которая может быть вызвана из вашего C # на основе (ASP.NET ) веб-приложение.

4) Настройте производственный сервер MATLAB (MPS) и разверните код с помощью компилятора MATLAB. Развернутый код MATLAB может быть вызван с использованием клиентского кода Java, Python или .NET, которые выполняются внутри вашего серверного веб-приложения.

Если с MATLAB разговаривает JavaScript на стороне клиента, я боюсь, что нет простого способа заставить их общаться напрямую. MPS все еще возможен, но это будет через серверное веб-приложение. Возможно, вы можете изучить возможность использования MATLAB Coder для преобразования кода MATLAB в код C, а затем использовать что-то вроде transpiler для преобразования кода C в код JavaScript, который можно запускать непосредственно в браузере.

Ответ №2:

Я думаю, что вы можете создавать клиентские программы, используя RESTful API и JSON:

  • Шаг 1: Напишите код MATLAB
  • Шаг 2. Создайте развертываемый архив с помощью приложения-компилятора производственного сервера
  • Шаг 3: Поместите развертываемый архив на сервер
  • Шаг 4. Включите совместное использование ресурсов из разных источников (CORS) на сервере
  • Шаг 5: Напишите код JavaScript, используя RESTful API и JSON
  • Шаг 6: Внедрите JavaScript в HTML-код
  • Шаг 7: Запустите пример

Эти шаги были взяты по этой ссылке: Пример: Веб-инструмент оценки облигаций с использованием JavaScript