Also habe ich GUI in Führung, die wie folgt aussieht:Werte von Radiobuttons in das Skript in Matlab Passing
Ich möchte Taste für den Zugriff auf Daten von Radio und dann die Variablen in meiner Simulation ändern (Bitrate und Modulation sind die Schaltflächengruppen, Improvement ist eine einzelne Optionsschaltfläche. Zum Beispiel - in der Simulation habe ich eine Variable Rs=1e9
, also wenn 1Gbps Knopf ausgewählt ist, möchte ich, dass es 1e9 bleibt, aber wenn 10Gbps Knopf ausgewählt ist, will ich, dass es seinen Wert zu 10e9 ändert.
Dann, nachdem ich den Startknopf gedrückt habe, möchte ich meine Simulation (die sich in einer anderen .m Datei befindet) mit gegebenen Parametern starten. Wie kann ich es tun? (Ich weiß über Griffe Idee in Matlab, aber ich weiß nicht, wie man Wert an die Simulation übergeben)
Das ist der Code, der GUI steuert - generiert von Guide. Ich habe Code hinzugefügt, der die Simulation startet und das Fenster schließt.
function varargout = gui_final(varargin)
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @gui_final_OpeningFcn, ...
'gui_OutputFcn', @gui_final_OutputFcn, ...
'gui_LayoutFcn', [], ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Executes just before gui_final is made visible.
function gui_final_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin unrecognized PropertyName/PropertyValue pairs from the
% command line (see VARARGIN)
% Choose default command line output for gui_final
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes gui_final wait for user response (see UIRESUME)
% uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line.
function varargout = gui_final_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
% --- Executes on button press in start.
function start_Callback(hObject, eventdata, handles)
% hObject handle to start (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
clc
close all
message = sprintf('Wait - this is a very long simulation!\nClick the OK button and wait');
uiwait(msgbox(message));
evalin('base', 'simulation');
% --- Executes on button press in dfe.
function dfe_Callback(hObject, eventdata, handles)
% hObject handle to dfe (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hint: get(hObject,'Value') returns toggle state of dfe
% --- Executes on button press in ook.
function ook_Callback(hObject, eventdata, handles)
% hObject handle to ook (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hint: get(hObject,'Value') returns toggle state of ook
Sorry, aber ich verstehe immer noch nicht, wie diese Daten zu übergeben das Skript mit der Simulation. – dawzaw
Ok. Ich habe vergessen zu schreiben, dass mein Skript keine Funktion war. Also verwandle ich es in eine Funktion. Aber mit Ihrem Code bekomme ich einen anderen Fehler: 'switch get (get (handles.Bitrate, 'SelectedObject'), 'Tag') Fall 'ongbps', Bitrate = 1e9; Fall 'tengbps', Bitrate = 10e9; Ende message = sprintf ('Warte - das ist eine sehr lange Simulation! \ NKlicke auf OK und warte'); uiwait (msgbox (Nachricht)); Evalin ('Basis', 'Simulation (Bitrate, Modulation, wahr)'); '. Der Fehler: 'Fehler mit evalin Undefinierte Funktion oder Variable 'bitrate'.' – dawzaw
Ok, korrigierte ich Ihre Antwort - evalin (' Basis ', [' Simulation ('num2str (Bitrate)')]] – dawzaw