convert matlab variables to simulink parameters

22 views (last 30 days)
I have 700 matlab variables in my workspace. I want to convert all variables to simulink parameters. Do you know any easy way to convert the data? In my situation, I add parameters to workspace for convert all variables at once. it's really hard....
  2 Comments
TAB
TAB on 24 May 2018
Edited: TAB on 24 May 2018
Do you mean, you want to convert simple workspace variable with Simulink.Parameter ?
ByungHoon Lee
ByungHoon Lee on 24 May 2018
Yeah that right. Do you know that?. If I have no solution to convert the variable to Simulink.Parameter, I would make 700 Simulink.Parameters....

Sign in to comment.

Accepted Answer

TAB
TAB on 24 May 2018
Edited: TAB on 24 May 2018
Write a script to collect the name, data type etc of all your workspace variable and make a loop to create Simulink.Parameter variables based on above info.
% Clear workspace
clear variables;
% Load variabled which are to be onverted in base workspace
% load here from m-file for mat-file or just create
param1 = 100;
param2 = 100;
% List of all workspace variables
wsVarList = whos;
for x=1:length(wsVarList)
% Collect variable name
varName = wsVarList(x).name;
% Save value. This variable will be replaced by Simulink.Parameter
varVal = eval(varName);
% Create parameter with same name as variable name and assign value
eval([varName ' = Simulink.Parameter']);
eval([varName '.Value = ' num2str(varVal)]);
% Based on your requirement, you can assign other properties
% wsVarList(x).class
% wsVarList(x).size
end
  1 Comment
Sina Ehtejab
Sina Ehtejab on 18 May 2020
You got a big brain and bigger than your brain is your generous heart . Have a nice day sir

Sign in to comment.

More Answers (1)

ByungHoon Lee
ByungHoon Lee on 24 May 2018
Thank you so much. I will do that. And i will give a feedback to you.

Categories

Find more on Simulink in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!