Возвратите состояние моделирования S-функции MEX C как допустимую структуру данных MATLAB, такую как матричная структура или массив ячеек.
Нет
C, C++
#define MDL_SIM_STATE
mxArray* mdlGetSimState(SimStruct* S)
S
SimStruct, представляющий Блок s-function.
Механизм Simulink® вызывает этот пользовательский метод получить состояние моделирования (SimState) модели, содержащей S
. Вызов этого метода должен произойти после mdlStart
и перед mdlTerminate
, чтобы гарантировать что все структуры данных S-функции (e. g., состояния, векторы DWork и выходные параметры), доступны.
/* Function: mdlGetSimState * Abstract: * Package the RunTimeData structure as a MATLAB structure * and return it. */ static mxArray* mdlGetSimState(SimStruct* S) { RunTimeData_T* rtd = (RunTimeData_T*)ssGetPWorkValue(S, 0); const char* fieldNames[] = {"Count"}; /* Create a MATLAB structure to hold the run-time data */ mxArray* simSnap = mxCreateStructMatrix(1, 1, 1, fieldNames); mxSetField(simSnap, 0, fieldNames[0], mxCreateDoubleScalar(rtd->cnt)); return simSnap; }