📄 compute.m
字号:
if get(handles.Full_sol_radiobutton, 'value') == 1
cparams.calc_type = 'Full';
else
cparams.calc_type = 'Quasi';
end % if
if cparams.domain == 'TD'
cparams.times = get(handles.Times_edit, 'String');
[tmp, isOk] = str2num(cparams.times);
if ~isOk
cparams.times = handles.DefaultStrings{ ...
[handles.DefaultStrings{:,1}]==handles.Times_edit,2};
end % if
if get(handles.NST_radiobutton, 'value') == 1
cparams.FtoTtype = 'NST';
[cparams.NST_tol, isOk] = str2num(get(handles.NST_tol_edit, ...
'String'));
if ~isOk
cparams.NST_tol = handles.DefaultStrings{ ...
[handles.DefaultStrings{:,1}]==handles.NST_tol_edit,2};
end % if
else
cparams.FtoTtype = 'FST';
[cparams.FST_err, isOk] = str2num(get(handles.FST_err_edit, ...
'String'));
if ~isOk
cparams.FST_err = handles.DefaultStrings{ ...
[handles.DefaultStrings{:,1}]==handles.FST_err_edit,2};
end % if
end % if
cparams.showFDsp = get(handles.showFDsp_checkbox, 'Value');
waveform = get(handles.Waveform_popup, 'String');
cparams.waveform = waveform{get(handles.Waveform_popup, 'Value')};
elseif cparams.domain == 'FD'
% Frequency domain specific parameters
cparams.freq = get(handles.Freq_edit, 'String');
[tmp, isOk] = str2num(cparams.freq);
if ~isOk
cparams.freq = handles.DefaultStrings{ ...
[handles.DefaultStrings{:,1}]==handles.Freq_edit,2};
end % if
end
% Hankel transform parameters
if get(handles.NHT_radiobutton, 'value') == 1
cparams.hank_type = 'NHT';
[cparams.NHT_tol, isOk] = str2num(get(handles.NHT_tol_edit, ...
'String'));
if ~isOk
cparams.NHT_tol = handles.DefaultStrings{ ...
[handles.DefaultStrings{:,1}]==handles.NHT_tol_edit,2};
end % if
else
cparams.hank_type = 'FHT';
[cparams.FHT_err, isOk] = str2num(get(handles.FHT_err_edit, ...
'String'));
if ~isOk
cparams.FHT_err = handles.DefaultStrings{ ...
[handles.DefaultStrings{:,1}]==handles.FHT_err_edit,2};
end % if
end % if
cparams.FDspline = get(handles.FDspline_checkbox, 'Value');
if cparams.FDspline
cparams.FDsp_NDEC = str2double(get(handles.FDsp_NDEC_edit, 'String'));
cparams.FDsp_Bmin = str2double(get(handles.FDsp_Bmin_edit, 'String'));
cparams.FDsp_Bmax = str2double(get(handles.FDsp_Bmax_edit, 'String'));
end % if
if strcmpi(get(handles.Quad_tol_edit, 'Enable'), 'On')
cparams.Quad_tol = str2double(get(handles.Quad_tol_edit, 'String'));
cparams.Rspline = get(handles.Rspline_checkbox, 'Value');
if cparams.Rspline
cparams.Rsp_NDEC = str2double(get( ...
handles.Rsp_NDEC_edit, 'String'));
end % if
end % if
if isfield(cparams, 'hank_type') && strcmpi(cparams.hank_type, 'NHT') ||...
isfield(cparams, 'FtoTtype') && strcmpi(cparams.FtoTtype, 'NST')
cparams.Seg_tol = str2double(get(handles.Seg_tol_edit, 'String'));
cparams.Max_seg = str2double(get(handles.Max_seg_edit, 'String'));
end
modelwin_han = guidata(handles.modelwin);
modelwin_han.cparams = [];
modelwin_han.cparams = cparams;
guidata(handles.modelwin, modelwin_han);
% *************************************************************************
% * *
% * Callbacks for Calculation UICONTROLS *
% * *
% *************************************************************************
% -------------------------------------------------------------------------
function DC_radiobutton_Callback(hObject, eventdata, handles)
set(handles.DC_radiobutton, 'Value', 1);
set(handles.Freqdom_radiobutton, 'Value', 0);
set(handles.Timedom_radiobutton, 'Value', 0);
setup_gui(hObject, eventdata, handles, 'DC');
% -------------------------------------------------------------------------
function Freqdom_radiobutton_Callback(hObject, eventdata, handles)
set(handles.DC_radiobutton, 'Value', 0);
set(handles.Freqdom_radiobutton, 'Value', 1);
set(handles.Timedom_radiobutton, 'Value', 0);
setup_gui(hObject, eventdata, handles, 'FD');
% -------------------------------------------------------------------------
function Timedom_radiobutton_Callback(hObject, eventdata, handles)
set(handles.DC_radiobutton, 'Value', 0);
set(handles.Freqdom_radiobutton, 'Value', 0);
set(handles.Timedom_radiobutton, 'Value', 1);
setup_gui(hObject, eventdata, handles, 'TD');
% -------------------------------------------------------------------------function Full_sol_radiobutton_Callback(hObject, eventdata, handles)
set(handles.Quasi_radiobutton, 'Value', 0);
set(handles.Full_sol_radiobutton, 'Value', 1);
% -------------------------------------------------------------------------function Quasi_radiobutton_Callback(hObject, eventdata, handles)
set(handles.Quasi_radiobutton, 'Value', 1);
set(handles.Full_sol_radiobutton, 'Value', 0);
% *************************************************************************
% * *
% * Callbacks for Frequency parameters UICONTROLS *
% * *
% *************************************************************************
% -------------------------------------------------------------------------function Freq_edit_Callback(hObject, eventdata, handles)
[num, isOk] = str2num(get(handles.Freq_edit, 'string'));
if ~isOk
modelwin_han = guidata(handles.modelwin);
set(handles.Freq_edit, 'string', modelwin_han.cparams.freq);
end
% -------------------------------------------------------------------------function NHT_radiobutton_Callback(hObject, eventdata, handles)
set(handles.NHT_radiobutton, 'Value', 1);
set(handles.FHT_radiobutton, 'Value', 0);
set(handles.NHT_tol_edit, 'Enable', 'on' );
set(handles.NHT_tol_txt, 'Enable', 'on' );
set(handles.Max_seg_edit, 'Enable', 'on' );
set(handles.Max_seg_txt, 'Enable', 'on' );
set(handles.Seg_tol_edit, 'Enable', 'on' );
set(handles.Seg_tol_txt, 'Enable', 'on' );
set(handles.FHT_err_edit, 'Enable', 'off');
set(handles.FHT_err_txt, 'Enable', 'off');
% -------------------------------------------------------------------------function FHT_radiobutton_Callback(hObject, eventdata, handles)
set(handles.NHT_radiobutton, 'Value', 0);
set(handles.FHT_radiobutton, 'Value', 1);
set(handles.NHT_tol_edit, 'Enable', 'off');
set(handles.NHT_tol_txt, 'Enable', 'off');
if get(handles.FST_radiobutton, 'Value') || ...
strcmpi(get(handles.FST_radiobutton, 'Enable'), 'off')
set(handles.Max_seg_edit, 'Enable', 'off');
set(handles.Max_seg_txt, 'Enable', 'off');
set(handles.Seg_tol_edit, 'Enable', 'off');
set(handles.Seg_tol_txt, 'Enable', 'off');
end
set(handles.FHT_err_edit, 'Enable', 'on' );
set(handles.FHT_err_txt, 'Enable', 'on' );
% -------------------------------------------------------------------------
function FDspline_checkbox_Callback(hObject, eventdata, handles)
if get(handles.FDspline_checkbox, 'Value')
set(handles.showFDsp_checkbox, 'Enable', 'on' , 'Value', 0);
set(handles.FDsp_NDEC_edit, 'Enable', 'on' );
set(handles.FDsp_NDEC_txt, 'Enable', 'on' );
set(handles.FDsp_Bmin_Bmax_txt, 'Enable', 'on' );
set(handles.FDsp_Bmin_edit, 'Enable', 'on' );
set(handles.FDsp_Bmax_edit, 'Enable', 'on' );
else
set(handles.showFDsp_checkbox, 'Enable', 'off', 'Value', 0);
set(handles.FDsp_NDEC_edit, 'Enable', 'off');
set(handles.FDsp_NDEC_txt, 'Enable', 'off');
set(handles.FDsp_Bmin_Bmax_txt, 'Enable', 'off');
set(handles.FDsp_Bmin_edit, 'Enable', 'off');
set(handles.FDsp_Bmax_edit, 'Enable', 'off');
end
% *************************************************************************
% * *
% * Callbacks for Time parameters UICONTROLS *
% * *
% *************************************************************************
% -------------------------------------------------------------------------function Times_edit_Callback(hObject, eventdata, handles)
[num, isOk] = str2num(get(handles.Times_edit, 'string'));
if ~isOk
modelwin_han = guidata(handles.modelwin);
set(handles.Times_edit, 'string', modelwin_han.cparams.times);
end
% -------------------------------------------------------------------------function numberinput_Callback(hObject, eventdata, handles)
num = str2double(get(hObject, 'string'));
if isnan(num)
set(hObject, 'string', handles.DefaultStrings{ ...
[handles.DefaultStrings{:,1}]==hObject,2});
end
% -------------------------------------------------------------------------function NST_radiobutton_Callback(hObject, eventdata, handles)
set(handles.NST_radiobutton, 'Value', 1);
set(handles.FST_radiobutton, 'Value', 0);
set(handles.FST_err_edit, 'Enable', 'off');
set(handles.FST_err_txt, 'Enable', 'off');
set(handles.NST_tol_edit, 'Enable', 'on' );
set(handles.NST_tol_txt, 'Enable', 'on' );
set(handles.Max_seg_edit, 'Enable', 'on' );
set(handles.Max_seg_txt, 'Enable', 'on' );
set(handles.Seg_tol_edit, 'Enable', 'on' );
set(handles.Seg_tol_txt, 'Enable', 'on' );
modelwin_han = guidata(handles.modelwin);
modelwin_han.cparams.FtoTtype = 'NST';
guidata(handles.modelwin,modelwin_han);
% -------------------------------------------------------------------------function FST_radiobutton_Callback(hObject, eventdata, handles)
set(handles.NST_radiobutton, 'Value', 0);
set(handles.FST_radiobutton, 'Value', 1);
set(handles.NST_tol_edit, 'Enable', 'off');
set(handles.NST_tol_txt, 'Enable', 'off');
if get(handles.FHT_radiobutton, 'Value') || ...
strcmpi(get(handles.FHT_radiobutton, 'Enable'), 'off')
set(handles.Max_seg_edit, 'Enable', 'off');
set(handles.Max_seg_txt, 'Enable', 'off');
set(handles.Seg_tol_edit, 'Enable', 'off');
set(handles.Seg_tol_txt, 'Enable', 'off');
end
set(handles.FST_err_edit, 'Enable', 'on' );
set(handles.FST_err_txt, 'Enable', 'on' );
% -------------------------------------------------------------------------function showFDsp_checkbox_Callback(hObject, eventdata, handles)
% -------------------------------------------------------------------------
function Waveform_popup_Callback(hObject, eventdata, handles)
set(hObject, 'Value', 1);
disp('Waveform popup not implemented yet...');
% *************************************************************************
% * *
% * Callbacks for Dipole integrations UICONTROLS *
% * *
% *************************************************************************
% -------------------------------------------------------------------------function Rspline_checkbox_Callback(hObject, eventdata, handles)
if get(handles.Rspline_checkbox, 'Value')
set(handles.Rsp_NDEC_edit, 'Enable', 'on' );
set(handles.Rsp_NDEC_txt, 'Enable', 'on' );
else
set(handles.Rsp_NDEC_edit, 'Enable', 'off');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -