Finished objectifying #8
| @ -1,7 +1,97 @@ | ||||
| function [outputArg1,outputArg2] = normalise_data(inputArg1,inputArg2) | ||||
| function [dataOUT] = normalise_data(dataIN) | ||||
| %NORMALISE_DATA Summary of this function goes here | ||||
| %   Detailed explanation goes here | ||||
| outputArg1 = inputArg1; | ||||
| outputArg2 = inputArg2; | ||||
| 
 | ||||
| %% creating UI | ||||
| fig = figure; | ||||
| fig.Name = 'Normalize Data'; | ||||
| fig.Units = 'Normalized'; | ||||
| fig.Position = [.2 .2 .6 .6]; | ||||
| fig.Tag = 'Normalize'; | ||||
| 
 | ||||
| %panel for plot | ||||
| plotpanel = uipanel(fig); | ||||
| plotpanel.Units = 'Normalized'; | ||||
| plotpanel.Position = [.01 .06 .98 .92]; | ||||
| %axes for plot | ||||
| ax = axes(plotpanel); | ||||
| ax.XLabel.String = 'Time'; | ||||
| ax.YLabel.String = 'Intensity'; | ||||
| %plot current data in figure with time as x axis | ||||
| plot(ax,dataIN) | ||||
| 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 = @NormApplyButtonPushed; | ||||
| 
 | ||||
| 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 = @NormResetButtonPushed; | ||||
| 
 | ||||
| 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 = @NormDoneButtonPushed; | ||||
| 
 | ||||
| %create input fields | ||||
| p1 = uicontrol(fig,'Style','edit'); | ||||
| p1.String = 'Left point of max region'; | ||||
| p1.Units = 'Normalized'; | ||||
| p1.Position = [.01 .01 .24 .05]; | ||||
| p1.HorizontalAlignment = 'left'; | ||||
| p1.FontUnits = 'Normalized'; | ||||
| p1.FontSize = 0.6; | ||||
| p1.Tag = 'MaxRegionLeft'; | ||||
| 
 | ||||
| p2 = uicontrol(fig,'Style','edit'); | ||||
| p2.String = 'Right point of max region'; | ||||
| p2.Units = 'Normalized'; | ||||
| p2.Position = [.25 .01 .24 .05]; | ||||
| p2.HorizontalAlignment = 'left'; | ||||
| p2.FontUnits = 'Normalized'; | ||||
| p2.FontSize = 0.6; | ||||
| p2.Tag = 'MaxRegionRight'; | ||||
| 
 | ||||
| uicontrol(p1); %passes focus to first input | ||||
| uiwait(fig) | ||||
| 
 | ||||
| %% Callback functions | ||||
|     function NormApplyButtonPushed(src,event) | ||||
|         left_point = str2double(get(p1,'String')); | ||||
|         right_point = str2double(get(p2,'String')); | ||||
|         %take mean of each field line between specified min and max time | ||||
|         maxima_mean = mean(dataIN([left_point right_point],:)); | ||||
|         %normalize amplitude to 1 by dividing by max of means | ||||
|         dataOUT = dataIN / max(maxima_mean); | ||||
|         %plotting result with time as x axis | ||||
|         plot(ax,dataOUT) | ||||
|         axis tight | ||||
|     end | ||||
| 
 | ||||
|     function NormResetButtonPushed(src,event) | ||||
|         plot(ax,dataIN) | ||||
|         axis tight | ||||
|     end | ||||
| 
 | ||||
|     function NormDoneButtonPushed(src,event) | ||||
|         close 'Normalize Data' | ||||
|     end | ||||
| 
 | ||||
| end | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user