Finshed function by adapting from correct_time_baseline
This commit is contained in:
parent
e8fa1adfa7
commit
840eef28c8
@ -1,7 +1,101 @@
|
||||
function [outputArg1,outputArg2] = correct_magnetic_basline(inputArg1,inputArg2)
|
||||
%CORRECT_MAGNETIC_BASLINE Summary of this function goes here
|
||||
% Detailed explanation goes here
|
||||
outputArg1 = inputArg1;
|
||||
outputArg2 = inputArg2;
|
||||
function [dataOUT] = correct_magnetic_basline(dataIN)
|
||||
%CORRECT_MAGNETIC_BASLINE UI for basline correction along field axis
|
||||
%
|
||||
% Usage: [dataOUT] = CORRECT_MAGNETIC_BASLINE(dataIN), where dataIN is a
|
||||
% 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
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user