(Не рекомендуемый), Возвращают состояние симуляции S-функции MEX C как допустимую структуру данных MATLAB, такую как матричная структура или массив ячеек.
mdlGetSimState не рекомендуется. Используйте mdlGetOpeartingPoint вместо этого.
Нет
C, C++
#define MDL_SIM_STATE
mxArray* mdlGetSimState(SimStruct* S)
S SimStruct, представляющий Блок s-function.
Механизм Simulink® вызывает этот пользовательский метод получить состояние симуляции (SimState) модели, содержащей S. Вызов этого метода должен произойти после mdlStart и перед mdlTerminate, чтобы гарантировать, что все структуры данных S-функции (например, состояния, векторы 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;
}