calcCluster edit page

sort orientations into clusters

Syntax

[c,center] = calcCluster(ori,'halfwidth',2.5*degree)
[c,center] = calcCluster(ori,'numCluster',n,'method','hierarchical')
[c,center] = calcCluster(ori,'maxAngle',omega,'method','hierarchical')

Input

ori orientation
n number of clusters
omega maximum angle

Output

c list of clusters
center center of the clusters

Example

% generate orientation clustered around 5 centers
cs = crystalSymmetry('432');
center = orientation.rand(5,cs);
odf = unimodalODF(center,'halfwidth',5*degree)
ori = odf.discreteSample(1500);
odf = SO3FunRBF (432 → xyz)
 
  <strong>multimodal components</strong>
  kernel: de la Vallee Poussin, halfwidth 5°
  center: 5 orientations
 
  Bunge Euler angles in degree
     phi1     Phi    phi2  weight
  126.742 96.4674 97.6628     0.2
  42.4147 100.405  89.085     0.2
  101.806 130.288 2.83273     0.2
  71.9962 17.8769 128.136     0.2
  2.15175 83.8784 177.682     0.2
% find the clusters and its centers
[cId,centerRec] = calcCluster(ori,'silent');
............................................
% visualize result
for i = 1:length(centerRec)
plot(ori(cId==i),'axisAngle')
hold on
plot(centerRec(i),'MarkerFaceColor','k','MarkerSize',15)
end
hold off