Changeset 14325


Ignore:
Timestamp:
02/07/13 15:28:41 (12 years ago)
Author:
jschierm
Message:

CHG: Corrected removal of nan and special cases in normfit_issm.m.

Location:
issm/trunk-jpl/src/m
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/m/miscellaneous/normfit_issm.m

    r14182 r14325  
    44function [muhat,sigmahat,muci,sigmaci]=normfit_issm(x,alpha)
    55
     6        if ~exist('alpha','var')
     7                alpha=0.05;
     8        end
     9
    610%  remove any NaN
    711
    8         x=x(~isnan(x(:)));
    9         n=length(x);
     12        if find(isnan(x))
     13                muhat   =zeros(1,size(x,2));
     14                sigmahat=zeros(1,size(x,2));
     15                muci    =zeros(2,size(x,2));
     16                sigmaci =zeros(2,size(x,2));
     17                for j=1:size(x,2)
     18                        [muhat(j),sigmahat(j),muci(:,j),sigmaci(:,j)]=normfit_issm(x(~isnan(x(:,j)),j),alpha);
     19                end
     20                return
     21        end
    1022
    1123%  explicitly calculate the moments
     
    1527
    1628        if (nargout>2)
    17                 if ~exist('alpha','var')
    18                         alpha=0.05;
    19                 end
    2029                prob=1.-alpha/2.;
    2130
     31                if (size(x,1) == 1)
     32                        % operate like matlab normfit, mean, std, etc.
     33                        n=length(x);
     34                else
     35                        n=size(x,1);
     36                end
     37
     38                muci    =zeros(2,length(muhat   ));
     39                sigmaci =zeros(2,length(sigmahat));
     40
    2241                try
    23                         muci(1,1)   =muhat-tinv(prob,n-1)*sigmahat/sqrt(n);
    24                         muci(2,1)   =muhat+tinv(prob,n-1)*sigmahat/sqrt(n);
    25                         sigmaci(1,1)=sigmahat*sqrt((n-1)/chi2inv(prob   ,n-1));
    26                         sigmaci(2,1)=sigmahat*sqrt((n-1)/chi2inv(1.-prob,n-1));
     42                        muci(1,:)   =muhat-tinv(prob,n-1)*sigmahat/sqrt(n);
     43                        muci(2,:)   =muhat+tinv(prob,n-1)*sigmahat/sqrt(n);
     44                        sigmaci(1,:)=sigmahat*sqrt((n-1)/chi2inv(prob   ,n-1));
     45                        sigmaci(2,:)=sigmahat*sqrt((n-1)/chi2inv(1.-prob,n-1));
    2746                catch me
    28                         muci(1,1)   =muhat;
    29                         muci(2,1)   =muhat;
    30                         sigmaci(1,1)=sigmahat;
    31                         sigmaci(2,1)=sigmahat;
     47                        muci(1,:)   =muhat;
     48                        muci(2,:)   =muhat;
     49                        sigmaci(1,:)=sigmahat;
     50                        sigmaci(2,:)=sigmahat;
    3251                end
    3352        end
  • issm/trunk-jpl/src/m/qmu/dakota_out_parse.m

    r14324 r14325  
    198198%  since normfit doesn't have a dim argument, and matlab isvector is true
    199199%  for a 1xn matrix, handle the case of one row explicitly
    200 if (min(size(data)) == 1)
     200if (size(data,1) > 1)
    201201    %dmean  =mean   (data);
    202202    %dstddev=std    (data,0);
     
    224224
    225225%  divide the data into structures for consistency
     226
    226227for i=1:length(desc)
    227228    dresp(i).descriptor=char(desc(i));
Note: See TracChangeset for help on using the changeset viewer.