How can i save matlab struct / class on level 2 matlab s-function ( like pwork) ? level 2 matlab s-function 에서 구조체 저장하는 방법 (pwork 같이 )

Hi all,
I have project written by two version of language ( C or matlab )
And i'm trying to imigrate my project to simulink.
In C s-function, I save struct data in p-work vector simply,
but level2 matlab s-function has no feature like that.
Can you help me?
I think s-function will be more compatible with matlab, why is there a feature only in C?
Is it because of the simplicity of the C data structure?
thank you.
안녕하세요
저는 C / matlab 두가지 언어 버전으로 구현된 프로젝트를 시뮬링크로 이식하고자 합니다.
C s-function에서는 pwork로 간단하게 구조체를 저장할 수 있는데,
matlab s-function 에는 구조체를 저장할수 있는 쉬운 방법이 없는것 같아 질문드립니다.
도움을 받을 수 있을까요?
감사합니다.

 Accepted Answer

I understand you are trying to migrate your project from C and MATLAB code into Simulink but are facing an issue where Level-2 MATLAB S-functions lack a P-Work vector feature to store your structural data.
The P-Work vector in C is designed specifically to store pointers to custom C structures. Since MATLAB is a higher-level interpreted language that manages memory automatically, it does not use raw pointers.
To resolve the issue, I recommend using MATLAB System Block Instead of using a Level-2 MATLAB S-function.
Here are some useful Documentations regarding MATLAB System Block as shown below:
I hope this is helpful.

3 Comments

Thank you for answer @Broy!
I tried it, but my code allocate memory in InitializeConditions method.
And even if I try using system block, struct data in system block cannot be changed inside s-function.
I have tried many ways for persist memory, and i think the best way is using Matlab function block with persistent variable
Hi 승욱,
Regarding your comment on the Answer, I assume you can also refer to this MATLAB Answers post: https://www.mathworks.com/matlabcentral/answers/27902-working-with-matlab-classes-in-the-level-2-matlab-s-functions
If you need further assistance, please consider contacting MathWorks Technical Support (https://www.mathworks.com/support/contact_us.html).
Thanks.

Sign in to comment.

More Answers (0)

Categories

Products

Release

R2025b

Asked:

on 19 Jan 2026

Commented:

on 26 Jan 2026

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!