Verfasst am: 22.11.2019, 00:59
Titel: Matlab parameter von gui an andere Funktion übergeben
Hallo,
Ich bin Anfänger mit matlab. Ich habe bereits die Werte der slider mit val1, val2, val3 und val4 ausgelesen. In einer anderen funktion(chua_function) möchte ich nun auf diese Werte zugreifen. Da kommt es allerdings ständig zu Fehlern. Kann mir jemand weiter helfen?
Code:
Hier der Code:
functionvarargout = chaos_simulation_gui(varargin) % Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @chaos_simulation_gui_OpeningFcn, ...
'gui_OutputFcn', @chaos_simulation_gui_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
ifnargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
function chaos_simulation_gui_OpeningFcn(hObject, eventdata, handles, varargin) [t,y] = ode45(@chua_function,[0150],[100]);
axes(handles.axes1);
plot3(y(:,1),y(:,2),y(:,3)) %3D Plot xlabel('D^-^1 Region') ylabel('D^0 Region') zlabel('D^1 Region') grid ... % Choose default command line output for chaos_simulation_gui
handles.output = hObject;
% Update handles structure guidata(hObject, handles);
% --- Outputs from this function are returned to the command line. functionvarargout = chaos_simulation_gui_OutputFcn(hObject, eventdata, handles) % Get default command line output from handles structure varargout{1} = handles.output;
function slider_a_Callback(hObject, eventdata, handles)
val1=get(hObject,'value');
set(handles.edit1,'string',num2str(val1));
guidata(hObject,handles);
function slider_a_CreateFcn(hObject, eventdata, handles) ifisequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor',[.9 .9 .9]);
end ... function slider_n_Callback(hObject, eventdata, handles)
val4=get(hObject,'value');
set(handles.edit4,'string',num2str(val4));
guidata(hObject,handles);
function slider_n_CreateFcn(hObject, eventdata, handles) ifisequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor',[.9 .9 .9]);
end function edit1_Callback(hObject, eventdata, handles)
value1=get(hObject,'string');
set(handles.text,'value',num2str(value1));
guidata(hObject,handles);
function edit1_CreateFcn(hObject, eventdata, handles) ifispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white');
end
... function edit4_Callback(hObject, eventdata, handles)
value4=get(hObject,'string');
set(handles.text,'value',num2str(value4));
guidata(hObject,handles);
function edit4_CreateFcn(hObject, eventdata, handles) ifispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white');
end
function out = chua_function(t,p)
a = 16; % here i want to write a = val1
B = 30; % here i want to write b = val2
m = -1.2;
n = -0.7;
x = p(1);
y = p(2);
z = p(3);
g = n*x+0.5*(m-n)*(abs(x+1)-abs(x-1)); %St�ckweise Lineare Gleichung der Diode
xdot = a*(y-x-g);
ydot = x - y+ z;
zdot = -B*y;
out = [xdot ydot zdot]';
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.