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);  %Struct for return Data
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);                              %Mean intensity values (line mean values)
%energy=1239.8424./wav;           %converting wavelength into energy
Info.freq=6e17*pi./Info.wav; %converting wavelength into angular frequency

[~,temp]=max(Info.Isum);
Info.Mw = Info.wav(temp);

Info.actual_Ew =(Info.Isum./sum(Info.Isum))'*Info.wav;             %Expected value in wavelength scale
Info.Ef=(Info.Isum./sum(Info.Isum))'*Info.freq;
%Iprob=Info.Isum./sum(Info.Isum);     %normalized matrix       % This is a vector /R

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