How to set simulink block parameters (customized) from GUI

3 次查看(过去 30 天)
Hi, I want to do this: in simulink I have included an entity generator block (from the SimEvents toolbox), in entity generator I wrote this matlab code:
persistent rngInit;
if isempty(rngInit)
seed = 2346;
rng(seed)
rngInit=true;
end
% Exponential inter-arrival time dt
mean = 1/10;
dt = -mean*log(1-rand());
Then I created a GUI and from that I want to change the value of the parameter 'seed' inside the previous code and to do so I created in the GUI this callback:
function seed_Callback(hObject, eventdata, handles)
% hObject handle to seed (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of seed as text
% str2double(get(hObject,'String')) returns contents of seed as a double
value=get(handles.seed,'string');
string1=value{1};
load_system('modelloPerProve');
set_param(['modelloPerProve/Entity Generator/Entity generation'],'seed',string);
It runs but it doesn't work. I can't undersatand how to reach the parameter.
Thanks for your help,
Chiara Cimino.

采纳的回答

ES
ES 2018-11-14
I think you should remove assigning value to seed in your model.
persistent rngInit;
if isempty(rngInit)
%seed = 2346;
rng(seed)
rngInit=true;
end
% Exponential inter-arrival time dt
mean = 1/10;
dt = -mean*log(1-rand());
and set the value of seed in base workspace using your gui callback.
function seed_Callback(hObject, eventdata, handles)
% hObject handle to seed (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of seed as text
% str2double(get(hObject,'String')) returns contents of seed as a double
value=get(handles.seed,'string');
string1=value{1};
load_system('modelloPerProve');
evalin('base','seed = 1234')
  1 个评论
chiara cimino
chiara cimino 2018-11-14
编辑:chiara cimino 2018-11-14
But I want to change the seed value from the gui with the number inserted by an operator in the edit text box.
do you know how to do it?
thank you,
Chiara

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Sources 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by