Код MATLAB ®, который требуется развернуть, часто содержит состояние - определенное значение данных в программе или переменной программы.
Пример состояния переноса в программе MATLAB включает, но не ограничивается:
Изменение или использование пути MATLAB и пути класса Java ®
Доступ к состоянию MATLAB, которое по своей природе является постоянным или глобальным. Некоторые примеры этого включают в себя:
Начальные числа случайных чисел
Обработка корневых объектов Graphics ®, сохраняющих данные
Параметры и установки панели инструментов MATLAB или MATLAB
Создание глобальных и постоянных переменных.
Загрузка объектов MATLAB (классов MATLAB) в MATLAB. При любом доступе к объекту MATLAB он загружается в MATLAB.
Вызов MEX-файлов, методов Java или методов C #, содержащих статические переменные.
Если функция MATLAB не только несет состояние, но и полагается на него для правильного выполнения, необходимо предпринять дополнительные шаги (перечисленные в этом разделе) для обеспечения сохранения состояния.
При развертывании приложения рассмотрите случаи, когда вы несете состояние, и при необходимости защитите его от повреждения. Предположим, что ваше состояние может быть изменено и код защищен от этого условия.
Ниже приведены примеры практики «защитного кодирования»:
Например, если используется начальное число случайных чисел, сбросьте его в развернутой прикладной программе, чтобы обеспечить целостность исходной функции MATLAB.
Если необходимо использовать глобальные или постоянные переменные, всегда проверяйте их значение в развернутом приложении и при необходимости сбрасывайте.
Например, если функция полагается на кэшированные ответы на предыдущие запросы, убедитесь, что развернутая система и приложение имеют доступ к этому кэшу вне среды MATLAB.
Простые типы данных обычно не привязаны к определенному приложению и средству сохранения состояния. По мере того как типы данных становятся менее сложными и специфичными, возможности выбора соответствующего инструмента сохранения состояния возрастают.
Избегайте использования обратных вызовов MATLAB, таких как timer. Функции обратного вызова позволяют прерывать и переопределять текущее состояние рабочего Server™ MATLAB Production и могут давать непредсказуемые результаты в многопользовательских средах.
Наиболее подходящий метод сохранения состояния во многом зависит от типа данных, которые необходимо сохранить.
Базы данных обеспечивают наиболее универсальные и масштабируемые средства для хранения данных с данными о состоянии. База данных действует как универсальный репозиторий и, как правило, может работать с любым приложением в среде разработки предприятия. Он не накладывает требований или ограничений на структуру или формат данных. Другой связанный метод заключается в использовании файлов с разделителями-запятыми в таких приложениях, как Microsoft ® Excel ®.
Данные, специфичные для стороннего языка программирования, например, Java и C #, могут быть сохранены с использованием ряда методов. Ознакомьтесь с онлайн-документацией соответствующего стороннего поставщика для получения информации о передовых практиках сохранения состояния.
Внимание
Использование MATLAB LOAD и SAVE функции часто используются для сохранения состояния в приложениях и рабочих областях MATLAB. Хотя в некоторых случаях это может быть успешным, настоятельно рекомендуется при необходимости проверить и сбросить данные, если они не хранятся в универсальном репозитории, таком как база данных.