MATLAB: How to set simulink block parameters (customized) from GUI

guisimulink from gui

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.

Best Answer

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')
Related Question