function [I, Info, Events, EventTimes] = Read_Mat_File(filename)
load(filename)
Info = struct();
Info.eventIDs = zeros(1,numel(data));
Info.eventIDs(1) = data(1).sts;
I = data(1).data;
EventTimes(1) = struct();
EventTimes(1).EvID = data(1).sts;
EventTimes(1).sec = data(1).sec;
EventTimes(1).usec = data(1).usec;
if (data(1).start ~= data(numel(data)).start) || (data(1).inc ~= data(numel(data)).inc)
temp = questdlg('Wavelengeth scale is not consistent over the measurement period!! Cancel Readin?')
if strcmp(temp,'Yes')
return
end
end
for i=[2:numel(data)]
I = [I,data(i).data];
EventTimes(i).EvID = data(i).sts;
EventTimes(i).sec = data(i).sec;
EventTimes(i).usec = data(i).usec;
Info.eventIDs(i) = data(i).sts;
end
Events = size(I,2);
Info = struct('wav_inc',0,'wav_start',0,'Isum',zeros(700,1),'freq',zeros(700,1),'frequn',zeros(700,1),'Eeinitial',zeros(1,size(I,1)),'Ew',0,'Ef',0);
Info.wav_start=data(1).start;
Info.wav_inc=data(1).inc;
Info.wav=Info.wav_start+Info.wav_inc*(0:size(I,1)-1)';
Info.Isum=mean(I,2);
Info.freq=6e17*pi./Info.wav;
[~,temp]=max(Info.Isum);
Info.Mw = Info.wav(temp);
Info.actual_Ew =(Info.Isum./sum(Info.Isum))'*Info.wav;
Info.Ef=(Info.Isum./sum(Info.Isum))'*Info.freq;
Info.symmetry = 1/(1000*abs(Info.Mw-Info.actual_Ew)/mean([Info.Mw,Info.actual_Ew]));
if Info.symmetry > 1
Info.Ew = Info.actual_Ew;
else
Info.Ew = Info.Mw;
end