This function is not yet fully documented. This is a transcript of the text-formatted help.
bbmean Create black-box for computing averages. bbmean creates a black-box operator that computes the mean over an arbitrary number of elements. It can be used either by providing indices or by labeling elements. Syntax: BB=bbmean(L) BB=bbmean(L,'same') BB=bbmean(DIM,{INX1,INX2,...}) L is a vector or hyper-cube with non-negative integral labels. Negative elements and NaNs are non-labels. Y=bbmean(L)*X(:) computes averages where Y(i) is the average of all elements of X with the label L=i. If we define mean([])=0 we have the relation Y(i)=mean(X(find(L==i))). The length of Y is the value of the largest label. Non-labels and zeros are ignored. Y=bbmean(L,'same')*X(:) produces a vector of the same size as X. Elements with labels becomes the average of the input labels: Y(i)=mean(X(find(LABEL==LABEL(i)))) for L(i)>0, Y(i)=X(i) for L(i)=0, Y(i)=0 for L(i) a non-label. Y=bbmean(DIM,{INX1,INX2,...})*X(:) computes Y(1)=mean(X(INX1)), Y(2)=mean(X(INX2)), etc. DIM is the size of X. An index-vector can be empty, in which case the output is zero. Example: img=bbphantom([200,200],'head'); L=zeros([200,200]); L(20:50,20:50)=1; L(50:100,50:100)=2; bb=bbmean(L,'same'); img2=reshape(bb*img(:),size(img)); imagesc(img2.^(1/2.2)); axis image; colormap(gray); See also .