四个复选框对应四个函数 ,在最开始要获得输入的变量K和R,在之后的每个复选框要调用以K和R为参数的其他函数。现在有两个问题:
1.输入的K和R不能被之后的参数使用;
2.我想让复选框勾选完之后,点击开始按钮,程序才开始运行;之后点击停止按钮,程序暂停但不退出;然后点击开始可以继续运行。。。。。。。。。。。。。
function varargout = award(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @award_OpeningFcn, ...
'gui_OutputFcn', @award_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
function award_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
guidata(hObject, handles);
function varargout = award_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
function nStart_Callback(hObject, eventdata, handles)
function nStart_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function edit2_Callback(hObject, eventdata, handles)
function edit2_CreateFcn(hObject, ~, ~)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function start_Callback(hObject, ~, handles)
%% 获取数值范围,并启动定时器
global K;
global R;
K = str2double(get(handles.nStart, 'String')); %获取随机数的起始值
if isnan(K) %若输入的不是有效的数值,清空输入框并返回
set(handles.nStart, 'String', '')
return;
end
R = str2double(get(handles.nEnd, 'String')); %获取随机数的结束值
if isnan(R)||R>8/9|| R<1/3 %若输入的不是有效的数值,清空输入框并返回
set(handles.nEnd, 'String', '')
return;
end
K = floor(K);
function stop_Callback(hObject, ~, handles)
% --- Executes on button press in checkbox1.
function checkbox1_Callback(hObject, eventdata, handles)
S_Amindecode( K,R );
axes(handles.axes1)
axis([2 5 10^-5 10^0])
SNR =-12:0.2:2 ;
curve=semilogy(SNR,Ber,'-ro');
grid on
hold on
set(curve,'linewidth',2);
xlabel('SNRdB(Es/N0)');
ylabel('BER');
title(['K=',num2str(K),',QPSK,AWGN'])
legend(['R =',num2str(rats(R))])
function checkbox2_Callback(hObject, eventdata, handles)
S_SPAdecode( K,R );
axes(handles.axes1)
axis([2 5 10^-5 10^0])
SNR =-12:0.2:2 ;
curve=semilogy(SNR,Ber,'-ro');
grid on
hold on
set(curve,'linewidth',2);
xlabel('SNRdB(Es/N0)');
ylabel('BER');
title(['K=',num2str(K),',QPSK,AWGN'])
legend(['R =',num2str(rats(R))])
function checkbox3_Callback(hObject, eventdata, handles)
S_SPA_iipdecode( K,R );
axes(handles.axes1)
axis([2 5 10^-5 10^0])
SNR =-12:0.2:2 ;
curve=semilogy(SNR,Ber,'-ro');
grid on
hold on
set(curve,'linewidth',2);
xlabel('SNRdB(Es/N0)');
ylabel('BER');
title(['K=',num2str(K),',QPSK,AWGN'])
legend(['R =',num2str(rats(R))])
function checkbox4_Callback(hObject, eventdata, handles)
S_minBPdecode(K,R) ;
axes(handles.axes1)
axis([2 5 10^-5 10^0])
SNR =-12:0.2:2 ;
curve=semilogy(SNR,Ber,'-ro');
grid on
hold on
set(curve,'linewidth',2);
xlabel('SNRdB(Es/N0)');
ylabel('BER');
title(['K=',num2str(K),',QPSK,AWGN'])
legend(['R =',num2str(rats(R))])
function pushbutton3_Callback(hObject, eventdata, handles)
close
function axes1_CreateFcn(hObject, eventdata, handles)