I have a function which does the following loop many, many times:
for cluster=1:max(bins), % bins is a list in the same format as kmeans() IDX output select=bins==cluster; % find group of values means(select,:)=repmat_fast_spec(meanOneIn(x(select,:)),sum(select),1); % (*, above) for each point, write the mean of all points in x that % share its label in bins to the equivalent row of means delta_x(select,:)=x(select,:)-(means(select,:)); %subtract out the mean from each point end
meanOneIn are stripped-down versions of
mean(), respectively, I'm wondering if there's a way to do the assignment in the line labeled (*) that avoids repmat entirely.
Any other thoughts on how to squeeze performance out of this thing would also be welcome.