The function is "remix" of native matlab cov2corr() function, which produces correlation matrix with elements on its main diagonal slightly greater or less then 1. So it can't be used in various further computations, for example in squareform() function.
The problem can be resolved simply by setting all the diagonal elements to 1 (freaky way) or by using variance instead of std while computing correlation matrix (covariance(x,y)/sqrt(var(x)*var(y)) instead of covariance(x,y)/(std(x)*std(y))).
x = [0.1 0.2 0.3; .3 .5 .2; .5 .6 .2; .5 .2 .4];
[std, corMatrix] = cov2corr(cov(x));
diag(corMatrix) == 1
Really? Can you give an example of a non-unit-diagonal correlation matrix output by cov2corr?
Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.