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)
multimodal components
kernel: de la Vallee Poussin, halfwidth 5°
center: 5 orientations
Bunge Euler angles in degree
phi1 Phi phi2 weight
89.4853 137.123 264.307 0.2
88.93 37.2102 33.2772 0.2
206.735 28.2847 248.627 0.2
123.733 176.985 187.827 0.2
109.525 87.7096 353.512 0.2
% find the clusters and its centers
[cId,centerRec] = calcCluster(ori,'silent');
Step size:1°
Step size:0.20972°
Step size:0.068719°
Step size:1°
Step size:0.20972°
Step size:0.085899°
Step size:1.9531°
Step size:3.0518°
Step size:1°
Step size:0.26214°
Step size:0.085899°
Step size:1°
Step size:0.512°
Step size:0.16777°
Step size:0.13422°
% visualize result
for i = 1:length(centerRec)
plot(ori(cId==i),'axisAngle')
hold on
plot(centerRec(i),'MarkerFaceColor','k','MarkerSize',15)
end
hold off
