diff --git a/AdjustSEM.m b/AdjustSEM.m new file mode 100644 index 0000000000000000000000000000000000000000..440009562b2e265b5a2db3e9b3521f0907c5c1a4 --- /dev/null +++ b/AdjustSEM.m @@ -0,0 +1,28 @@ +function [SEM] = AdjustSEM(SEM, type, replaceNan) + +if nargin<1, type='mean'; end +if nargin<2, replaceNan=True; end + +validSEMs = ~isnan(SEM) & SEM~=0 & ~isinf(SEM); + + +if strcmp(type,'mean') + SEMReplace=mean(SEM(validSEMs)); +elseif strcmp(type,'median') + SEMReplace=median(SEM(validSEMs)); +else + disp('Warning, not a valid selection') + invalidSEMs = false(size(SEM)); + SEMReplace=nan; +end + +if replaceNan + invalidSEMs = isnan(SEM) | SEM==0; +else + invalidSEMs = SEM==0; +end + +SEM(invalidSEMs) = SEMreplace; + + +end \ No newline at end of file diff --git a/FindLeastSearched.m b/FindLeastSearched.m new file mode 100644 index 0000000000000000000000000000000000000000..b57ce866e84ea6aac531b14e841d463c363a7328 --- /dev/null +++ b/FindLeastSearched.m @@ -0,0 +1,32 @@ +function [t, t2] = FindLeastSearched(path, modelName) +files=dir(sprintf('%s/**/*%s*mat', path, modelName)); +if ~isempty(files) +names={files.name}'; +a=regexp(names,'\[(.+)\]','tokens'); +a(cellfun(@isempty,a))=[]; +a = string(a); +v=strtrim(split(a,',',2)); +t=array2table(v); +t2=unique(t,'rows'); +v=join(v); +minV=MinFrequency(v); +minV = [minV(contains(minV,'min ') & contains(minV,' k')); minV]; %If doing parameter estimation, start with minimization +t(~strcmp(v,minV(1)),:)=[]; +t=t(1,:); +else + t=[]; + disp('no files found') +end + +end + +function [minElement] = MinFrequency(variable) + +uniqueData = unique(variable); +[~,w] = ismember(variable,unique(uniqueData)); +cellCount = hist(w,unique(w)); +% [~,indexToMinCellCount] = min(cellCount); +% minElement = uniqueData(indexToMinCellCount); +ind = cellCount ==min(cellCount); +minElement = uniqueData(ind); +end \ No newline at end of file