⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nlsegui.m

📁 应用matlab解非线性薛定厄方程的问题
💻 M
📖 第 1 页 / 共 5 页
字号:
        set(handles.gShow2,'Enable','on');
        set(handles.gT2,'String','')
        handles.Play_Index_Display2 = 0;
        guidata(hObject,handles);
        handles.show_side_by_side(1,1) = 0;
        guidata(hObject,handles);
    else
        s=2;found=0;
        [tmp_m,tmp_n]=size(handles.Ploted_Data_Index_Display2);
        while ~found && s<=tmp_n,
            if n==handles.Ploted_Data_Index_Display2(1,s),
                found=1;
            end
            s=s+1;
        end
        if found==0,
            handles.Ploted_Data_Index_Display2 = [handles.Ploted_Data_Index_Display2,n];
            guidata(hObject,handles);
        end
        [tmp_m,tmp_n]=size(handles.Ploted_Data_Index_Display2);
        h=plot( handles.Time,abs(handles.Signal(handles.Ploted_Data_Index_Display2(1,2:tmp_n),:)).^2,'Parent',handles.Display2);
        set(get(handles.Display2,'YLabel'),'String','Intensity','FontSize',12,'FontName','Courier New','FontWeight','bold')
        set(get(handles.Display2,'XLabel'),'String','Time (T_0)','FontSize',12,'FontName','Courier New','FontWeight','bold')
        set(handles.gRefreshDisplay2,'Enable','on','Visible','on');
        set(handles.gShowframe2,'Visible','off','Value',1);
        set(handles.gShow2,'Enable','on');
        set(handles.gT2,'String','')
        handles.Play_Index_Display2 = 0;
        guidata(hObject,handles);
        handles.show_side_by_side(1,1) = 0;
        guidata(hObject,handles);
    end
else
    handles.Ploted_Data_Index_Display2 = [1,n]
    guidata(hObject,handles);
    h=plot( handles.Time,abs(handles.Signal(n,:)).^2,'Parent',handles.Display2);
    set(get(handles.Display2,'YLabel'),'String','Intensity','FontSize',12,'FontName','Courier New','FontWeight','bold')
    set(get(handles.Display2,'XLabel'),'String','Time (T_0)','FontSize',12,'FontName','Courier New','FontWeight','bold')
    set(handles.gRefreshDisplay2,'Enable','on','Visible','on');
    set(handles.gShowframe2,'Visible','off','Value',1);
    set(handles.gShow2,'Enable','on');
    set(handles.gT2,'String','');
    handles.Play_Index_Display2 = 0;
    guidata(hObject,handles);
    handles.show_side_by_side(1,1) = 0;
    guidata(hObject,handles);
end

% --------------------------------------------------------------------
function gSC_Callback(hObject, eventdata, handles)

% --- Executes during object creation, after setting all properties.
function Loaded_Signals_CreateFcn(hObject, eventdata, handles)
% hObject    handle to Loaded_Signals (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: listbox controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc
    set(hObject,'BackgroundColor','white');
else
    set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end


% --- Executes on selection change in Loaded_Signals.
function Loaded_Signals_Callback(hObject, eventdata, handles)
% hObject    handle to Loaded_Signals (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: contents = get(hObject,'String') returns Loaded_Signals contents as cell array
%        contents{get(hObject,'Value')} returns selected item from Loaded_Signals


% --- Executes on button press in gIS_Edit.
function gIS_Edit_Callback(hObject, eventdata, handles)
n=get(handles.Loaded_Signals,'Value');
if n==0,
    errordlg('No Signal selected!','Error Dialog Box','modal');
elseif ismember(n,handles.Input_Signal_Index)
    errordlg('Being used by Launch Module!','Error Dialog Box','modal');
else
    if handles.Signal_Spec(n,5)==2,
        prompt{1} = 'Width';
        prompt{2} = 'Chirp Parameter';
        prompt{3} = 'Amplitude'
        default_ans = {num2str(handles.Signal_Spec(n,1)),num2str(handles.Signal_Spec(n,2)),num2str(handles.Signal_Spec(n,3))};
        title = 'Parameters For Hyperbolic-Secant Pulse';
        answer = inputdlg(prompt,title,1,default_ans);
        
        if ~isempty(answer),
            %----------- Pulse Parameters ----------------
            
            handles.Signal_Spec(n,1) =str2num(answer{1})
            guidata(hObject,handles);
            handles.Signal_Spec(n,2) =str2num(answer{2});
            guidata(hObject,handles);
            handles.Signal_Spec(n,3) =str2num(answer{3});
            guidata(hObject,handles);
            Tmp_Signal=handles.Signal_Spec(n,3)*sech(handles.Time./handles.Signal_Spec(n,1)).*exp(-((handles.Signal_Spec(n,2)*sqrt(-1))/2)*(handles.Time./handles.Signal_Spec(n,1)).^2);
            handles.Signal(n,:)=Tmp_Signal; 
            guidata(hObject,handles);
            
            %--------Finding FFT of the Signal-----------------------------------
            handles.Frequency_Chirp(n,:)=-2*handles.Signal_Spec(n,2)*(handles.Time/handles.Signal_Spec(n,1))/handles.Signal_Spec(n,1);
            guidata(hObject,handles);
            tmpFFT=fft(Tmp_Signal);
            handles.Signal_Spectrum(n,:) = tmpFFT;
            handles.Loaded_Signal_Ppty(n,:) =[sqrt(var(handles.Time,abs(Tmp_Signal).^2)),sqrt(var(handles.Frequency,abs(tmpFFT).^2))];
            guidata(hObject,handles);
            tmpStr=cat(2,handles.Loaded_Signal_List,handles.Empty,num2str(handles.Loaded_Signal_Ppty(:,1)),handles.Empty,num2str(handles.Loaded_Signal_Ppty(:,2)));
            set(handles.Loaded_Signals,'String',tmpStr);
        end
    elseif handles.Signal_Spec(n,5)==1,
        prompt{1} = 'Width';
        prompt{2} = 'm';
        prompt{3} = 'Chirp Parameter';
        prompt{4} = 'Amplitude';
        default_ans = {num2str(handles.Signal_Spec(n,1)),num2str(handles.Signal_Spec(n,2)),num2str(handles.Signal_Spec(n,3)),num2str(handles.Signal_Spec(n,4))};
        title = 'Parameters For Super-Gaussian Pulse';
        answer = inputdlg(prompt,title,1,default_ans);
        
        if ~isempty(answer),
            %----------- Pulse Parameters ----------------
            
            handles.Signal_Spec(n,1) =str2num(answer{1})
            guidata(hObject,handles);
            handles.Signal_Spec(n,2) =str2num(answer{2});
            guidata(hObject,handles);
            handles.Signal_Spec(n,3) =str2num(answer{3});
            guidata(hObject,handles);
            handles.Signal_Spec(n,4) =str2num(answer{4});
            guidata(hObject,handles);
            Tmp_Signal=handles.Signal_Spec(n,4)*exp(-((1+handles.Signal_Spec(n,3)*sqrt(-1))/2)*(handles.Time./handles.Signal_Spec(n,1)).^(2*handles.Signal_Spec(n,2)));
            handles.Signal(n,:)=Tmp_Signal; 
            guidata(hObject,handles);
            %--------Finding FFT of the Signal-----------------------------------
            handles.Frequency_Chirp(n,:)=-2*handles.Signal_Spec(n,3)*handles.Signal_Spec(n,2)*((handles.Time/handles.Signal_Spec(n,1)).^(2*handles.Signal_Spec(n,2)-1))/handles.Signal_Spec(n,1);
            guidata(hObject,handles);
            tmpFFT=fft(Tmp_Signal);
            handles.Signal_Spectrum(n,:) = tmpFFT;
            handles.Loaded_Signal_Ppty(n,:) = [sqrt(var(handles.Time,abs(Tmp_Signal).^2)),sqrt(var(handles.Frequency,abs(tmpFFT).^2))];
            guidata(hObject,handles);
            tmpStr=cat(2,handles.Loaded_Signal_List,handles.Empty,num2str(handles.Loaded_Signal_Ppty(:,1)),handles.Empty,num2str(handles.Loaded_Signal_Ppty(:,2)));
            set(handles.Loaded_Signals,'String',tmpStr);
        end
    elseif handles.Signal_Spec(n,5)==0,
        errordlg('Parametrs non-editable','Error Dialog Box','modal');
    end
end

% --- Executes on button press in gRemove_IS.
function gRemove_IS_Callback(hObject, eventdata, handles)
% Remove Selected

n=get(handles.Loaded_Signals,'Value');
if n==0,
    errordlg('No Signal selected!','Error Dialog Box','modal');
    set(handles.gRemove_IS,'Enable','off');
    set(handles.gIS_Edit,'Enable','off');
elseif ismember(n,handles.Input_Signal_Index)
    errordlg('Being used by Launch Module!','Error Dialog Box','modal');
elseif handles.Signal_num==1,
    handles.Signal = [];
    guidata(hObject,handles);
    handles.Frequency_Chirp = [];
    guidata(hObject,handles);
    handles.Signal_Spectrum = [];
    guidata(hObject,handles);
    handles.Frequency_Chirp = [];
    guidata(hObject,handles);
    handles.Loaded_Signal_List = [];
    guidata(hObject,handles);
    handles.Loaded_Signal_Ppty = [];
    guidata(hObject,handles);
    handles.Ploted_Data_Index_Display1 = [];
    guidata(hObject,handles);
    handles.Ploted_Data_Index_Display2 = [];
    guidata(hObject,handles);
    handles.Empty = [];
    guidata(hObject,handles);
    handles.Signal_num = 0;
    guidata(hObject,handles);
    handles.Signal_Spec = [];
    guidata(hObject,handles);
    set(handles.Loaded_Signals,'String','','Value',handles.Signal_num);
    set(handles.gRemove_IS,'Enable','off');
    set(handles.gIS_Edit,'Enable','off');
elseif n==handles.Signal_num,
    handles.Signal = handles.Signal(1:(n-1),:);
    guidata(hObject,handles);
    handles.Frequency_Chirp = handles.Frequency_Chirp(1:(n-1),:);
    guidata(hObject,handles);
    handles.Signal_Spectrum = handles.Signal_Spectrum(1:(n-1),:);
    guidata(hObject,handles);
    handles.Loaded_Signal_List = handles.Loaded_Signal_List(1:(handles.Signal_num-1),:);
    guidata(hObject,handles);
    handles.Loaded_Signal_Ppty = handles.Loaded_Signal_Ppty(1:(n-1),:);
    guidata(hObject,handles);
    handles.Signal_Spec = handles.Signal_Spec(1:(n-1),:);
    guidata(hObject,handles);
    s=2;found=0;
    [tmp_m,tmp_n] = size(handles.Ploted_Data_Index_Display1);
    while ~found && s<=tmp_n,
        if n==handles.Ploted_Data_Index_Display1(1,s),
            found=1;
        end
        s=s+1;
    end
    if found==1&& 2==tmp_n,
        handles.Ploted_Data_Index_Display1=[];
        guidata(hObject,handles);
    elseif found ==1,
        handles.Ploted_Data_Index_Display1=[handles.Ploted_Data_Index_Display1(1,1:s-2),handles.Ploted_Data_Index_Display1(1,s:tmp_n)];
        guidata(hObject,handles);
    end
    s=2;found=0;
    [tmp_m,tmp_n] = size(handles.Ploted_Data_Index_Display2);
    while ~found && s<=tmp_n,
        if n==handles.Ploted_Data_Index_Display2(1,s),
            found=1;
        end
        s=s+1;
    end
    if found==1 && 2==tmp_n,
        handles.Ploted_Data_Index_Display2=[];
        guidata(hObject,handles);
    elseif found ==1,
        handles.Ploted_Data_Index_Display2=[handles.Ploted_Data_Index_Display2(1,1:s-2),handles.Ploted_Data_Index_Display2(1,s:tmp_n)];
        guidata(hObject,handles);
    end
    handles.Empty = handles.Empty(1:(n-1),:);
    guidata(hObject,handles);
    handles.Signal_num = handles.Signal_num - 1;
    guidata(hObject,handles);
    tmpStr = cat(2,handles.Loaded_Signal_List,handles.Empty,num2str(handles.Loaded_Signal_Ppty(:,1)),handles.Empty,num2str(handles.Loaded_Signal_Ppty(:,2)));
    set(handles.Loaded_Signals,'String',tmpStr,'Value',handles.Signal_num);
    set(handles.gRemove_IS,'Enable','on');
    set(handles.gIS_Edit,'Enable','on');
else
    handles.Loaded_Signal_List = handles.Loaded_Signal_List(1:(handles.Signal_num-1),:);
    guidata(hObject,handles);
    handles.Signal = [handles.Signal(1:(n-1),:);handles.Signal((n+1):handles.Signal_num,:)];
    guidata(hObject,handles);
    handles.Frequency_Chirp = [handles.Frequency_Chirp(1:(n-1),:);handles.Frequency_Chirp((n+1):handles.Signal_num,:)];
    guidata(hObject,handles);
    handles.Signal_Spectrum = [handles.Signal_Spectrum(1:(n-1),:);handles.Signal_Spectrum((n+1):handles.Signal_num,:)];
    guidata(hObject,handles);
    handles.Signal_Spectrum = handles.Signal_Spectrum(1:(n-1),:);
    guidata(hObject,handles);
    handles.Loaded_Signal_Ppty = [handles.Loaded_Signal_Ppty(1:(n-1),:);handles.Loaded_Signal_Ppty(n+1:(handles.Signal_num),:)];
    guidata(hObject,handles); 
    handles.Empty = [handles.Empty(1:(n-1),:);handles.Empty(n+1:(handles.Signal_num),:)];
    guidata(hObject,handles);
    handles.Signal_Spec = [handles.Signal_Spec(1:(n-1),:);handles.Signal_Spec(n+1:(handles.Signal_num),:)];
    s=2;found=0;
    [tmp_m,tmp_n] = size(handles.Ploted_Data_Index_Display1);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -