How to search .slx files (or convert them to text)

조회 수: 31(최근 30일)
Jay Gowdy
Jay Gowdy 2013년 5월 15일
I have a directory structure full of dozens of .mdl files with probably hundreds of Simulink blocks that share common EML code. These .mdl files are NOT all in a single hierarchy of referenced sub-models.
A few times a year we change some of the common code and I want to find every instance of some piece of EML code in all of my model files, so I just fire up find and grep and use them to identify which .mdl files have EML blocks that use what I am searching for, and I can usually tease out from the .mdl file which EML block to go to.
With more recent Simulink releases (we are currently using 2012b), it appears I have no choice but to create models as .slx files, which are binary, not searchable, and not readable.
So,
1) is there a way to search a directory structure full of arbitrary .slx files for arbitrary text in all the contained EML blocks? 2) if not, is there a way to convert .slx files to text so I can search them as I do .mdl files 3) or, is there a way to convert .slx files to .mdl files so I don't have to work with it in the first place?
Jay

답변(3개)

Ryan G
Ryan G 2013년 5월 15일
First, I would recommend finding a way to do this without using the actual text. That being said, you can open up a .slx file with any normal unzip program. Inside you will find all the data contained within the model that you had found previously.

Kaustubha Govind
Kaustubha Govind 2013년 5월 15일
You should be able to use save_system to resave a model in the .mdl format, but like Ryan suggested, I would recommend not relying on find/grep. Ideally, you would load each model, and use the Stateflow API to access the code in each MATLAB Function block. See How do I specify the MATLAB code for the function in an Embedded MATLAB Function Block from the MATLAB command line? to get started on this idea.

Gavin Walker
Gavin Walker 2013년 5월 23일
편집: Gavin Walker 2013년 5월 23일
Just to add one other item: you can decide if you want the MDL or SLX file format to be your default. Go to the Simulink Preferences and set the "file format for new models and libraries" to be what you'd prefer.

Community Treasure Hunt

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

Start Hunting!

Translated by