# Calculating average and standard deviation for element correction factor from excel file

22 views (last 30 days)
I'm importing data from an excel file. I need to take the average of every of every serial number, then calculate the standard deviation percentage of every serial number. Any ideas how i could do that? Thank you fred ssemwogerere on 7 Feb 2020
Hello, this should do nicely;
% Assuming your spreadsheet file is in the current (working) Matlab folder
optns=detectImportOptions('file.xlsx'); % replace the input "file.xlsx" here with the name of your file and extension
% Set variables to import from your file and import as table
optns.SelectedVariableNames={'SerialNumber','RawCounts'};
% Determine unique serial numbers and corresponding indices
% The unique serial numbers are stored in "C".
[Z,mX,mY]=unique(T.SerialNumber);
% Compute the mean for each unique serial number
avg=accumarray(mY,T.RawCounts,[],@mean);
% Compute the standard deviation for each unique serial number
stdev=accumarray(mY,T.RawCounts,[],@std);
% To calculate the percentage standard deviation or relative deviation, you
% multiply each standard deviation by 100, and divide it by its
% corresponding mean value in array; "avg".
percentdev=(stdev.*100)./avg;
fred ssemwogerere on 12 Feb 2020
Hello, oh yes, by "C", i meant "Z". That was a typing error. Thank you