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