Finished objectifying #8
| @ -1,7 +1,101 @@ | |||||||
| function [outputArg1,outputArg2] = correct_magnetic_basline(inputArg1,inputArg2) | function [dataOUT] = correct_magnetic_basline(dataIN) | ||||||
| %CORRECT_MAGNETIC_BASLINE Summary of this function goes here | %CORRECT_MAGNETIC_BASLINE UI for basline correction along field axis | ||||||
| %   Detailed explanation goes here | % | ||||||
| outputArg1 = inputArg1; | %   Usage: [dataOUT] = CORRECT_MAGNETIC_BASLINE(dataIN), where dataIN is a | ||||||
| outputArg2 = inputArg2; | %   dataset loaded via the LOAD_MATLAB or LOAD_BRUKER function. | ||||||
|  | % | ||||||
|  | %   The function will show the input data and offer an input field, where | ||||||
|  | %   the number of field basline points should be set. By pressing "Apply" the | ||||||
|  | %   correction will be executed and the graph changes to the corrected data. | ||||||
|  | %   By pressing "Reset" the graph will return to show the original data. | ||||||
|  | %   Exit the function by pressing "Done". | ||||||
|  | 
 | ||||||
|  | %% creating UI | ||||||
|  | fig = figure; | ||||||
|  | fig.Name = 'Correct Magnetic Baseline'; | ||||||
|  | fig.Units = 'Normalized'; | ||||||
|  | fig.Position = [.2 .2 .6 .6]; | ||||||
|  | fig.Tag = 'CorrMagBase'; | ||||||
|  | 
 | ||||||
|  | %panel for plot | ||||||
|  | plotpanel = uipanel(fig); | ||||||
|  | plotpanel.Units = 'Normalized'; | ||||||
|  | plotpanel.Position = [.01 .06 .98 .92]; | ||||||
|  | %axes for plot | ||||||
|  | ax = axes(plotpanel); | ||||||
|  | ax.XLabel.String = 'Magnetic field'; | ||||||
|  | ax.YLabel.String = 'Intensity'; | ||||||
|  | %plot current data in figure with field as x axis | ||||||
|  | dataIN_transp = dataIN.'; | ||||||
|  | plot(ax,dataIN_transp) | ||||||
|  | axis tight | ||||||
|  | 
 | ||||||
|  | %create push buttons | ||||||
|  | a = uicontrol(fig,'Style','pushbutton'); | ||||||
|  | a.String = 'Apply'; | ||||||
|  | a.Units = 'Normalized'; | ||||||
|  | a.Position = [.52 .01 .15 .05]; | ||||||
|  | a.FontUnits = 'Normalized'; | ||||||
|  | a.FontSize = 0.6; | ||||||
|  | a.Tag = 'Apply'; | ||||||
|  | a.Callback = @FieldApplyButtonPushed; | ||||||
|  | 
 | ||||||
|  | r = uicontrol(fig,'Style','pushbutton'); | ||||||
|  | r.String = 'Reset'; | ||||||
|  | r.Units = 'Normalized'; | ||||||
|  | r.Position = [.68 .01 .15 .05]; | ||||||
|  | r.FontUnits = 'Normalized'; | ||||||
|  | r.FontSize = 0.6; | ||||||
|  | r.Tag = 'Reset'; | ||||||
|  | r.Callback = @FieldResetButtonPushed; | ||||||
|  | 
 | ||||||
|  | d = uicontrol(fig,'Style','pushbutton'); | ||||||
|  | d.String = 'Done'; | ||||||
|  | d.Units = 'Normalized'; | ||||||
|  | d.Position = [.84 .01 .15 .05]; | ||||||
|  | d.FontUnits = 'Normalized'; | ||||||
|  | d.FontSize = 0.6; | ||||||
|  | d.Tag = 'Done'; | ||||||
|  | d.Callback = @FieldDoneButtonPushed; | ||||||
|  | 
 | ||||||
|  | %create input field | ||||||
|  | p = uicontrol(fig,'Style','edit'); | ||||||
|  | p.Units = 'Normalized'; | ||||||
|  | p.Position = [.01 .01 .5 .05]; | ||||||
|  | p.HorizontalAlignment = 'left'; | ||||||
|  | p.FontUnits = 'Normalized'; | ||||||
|  | p.FontSize = 0.6; | ||||||
|  | p.Tag = 'FieldPoints'; | ||||||
|  | 
 | ||||||
|  | uicontrol(p); %passes focus to input | ||||||
|  | uiwait(fig) | ||||||
|  | 
 | ||||||
|  | %% Callback functions | ||||||
|  |     function FieldApplyButtonPushed(src,event) | ||||||
|  |         field_baseline = str2double(get(p,'String')); | ||||||
|  |         %field baseline CORRECTING | ||||||
|  |         data_size = size(dataIN); | ||||||
|  |         dataOUT = zeros(data_size); | ||||||
|  |         baseline_mean_right = mean(dataIN(:,1:field_baseline),2); | ||||||
|  |         baseline_mean_left = mean(dataIN(:,end-field_baseline:end),2); | ||||||
|  |         baseline_mean = (baseline_mean_right + baseline_mean_left) / 2; | ||||||
|  |         for n = 1:data_size(1) | ||||||
|  |             dataOUT(n,:) = dataIN(n,:) - baseline_mean(n); | ||||||
|  |         end | ||||||
|  |         %plotting result with field as x axis | ||||||
|  |         dataOUT_transp = dataOUT.'; | ||||||
|  |         plot(ax,dataOUT_transp) | ||||||
|  |         axis tight | ||||||
|  |     end | ||||||
|  | 
 | ||||||
|  |     function FieldResetButtonPushed(src,event) | ||||||
|  |         plot(ax,dataIN_transp) | ||||||
|  |         axis tight | ||||||
|  |     end | ||||||
|  | 
 | ||||||
|  |     function FieldDoneButtonPushed(src,event) | ||||||
|  |         close 'Correct Magnetic Baseline' | ||||||
|  |     end | ||||||
|  | 
 | ||||||
| end | end | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user