-
Notifications
You must be signed in to change notification settings - Fork 0
/
getClusterHStats.m
74 lines (57 loc) · 2.7 KB
/
getClusterHStats.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
function ClusterH = getClusterHStats(Hyperfine,DeltaHyperfine,Nuclear_Dipole,bAmax, ModulationDepth,Frequency_Pair,Adjacency,Coordinates,Clusters,ClusterGeo,numberClusters,isize,TM_powder)
ClusterH.ENUM = {'MIN', 'MAX', 'EDGE' ,'CRIT'};
E_ = 1-eye(isize)>0;
E_ = E_(:);
nC_ = numberClusters(isize);
ClusterH.ModulationDepth = zeros(nC_,4);
ClusterH.Hyperfine = zeros(nC_,2);
ClusterH.DeltaHyperfine = zeros(nC_,4);
ClusterH.Nuclear_Dipole = zeros(nC_,4);
ClusterH.Frequency_Pair = zeros(nC_,4);
ClusterH.bAmax = zeros(nC_,4);
for icluster = 1:nC_
cluster_ = Clusters{isize}(icluster,:);
adj_ = Adjacency(cluster_,cluster_) > 0;
adj_ = adj_(:);
adj_ = adj_(E_);
prox_ = cluster_(find(Coordinates.r(cluster_) == ClusterGeo{isize}.cluster_proximity(icluster)));
dist_ = cluster_(find(Coordinates.r(cluster_) == ClusterGeo{isize}.cluster_distance(icluster)));
moddepth_ = ModulationDepth(cluster_,cluster_);
moddepth_ = moddepth_(:);
moddepth_ = moddepth_(E_);
hyperfine_ = Hyperfine(cluster_);
deltahyperfine_ = DeltaHyperfine(cluster_,cluster_);
deltahyperfine_ = deltahyperfine_(:);
deltahyperfine_ = deltahyperfine_(E_);
dd_ = Nuclear_Dipole(cluster_,cluster_);
dd_ = dd_(:);
dd_ = dd_(E_);
bAmax_ = bAmax(cluster_,cluster_);
bAmax_ = bAmax_(:);
bAmax_ = bAmax_(E_);
freq_ = Frequency_Pair(cluster_,cluster_);
freq_ = freq_(:);
freq_ = freq_(E_);
if any(adj_)
crit_moddepth_ = min(moddepth_(adj_));
crit_deltahyperfine_ = min(deltahyperfine_(adj_));
crit_dd_ = min(dd_(adj_));
crit_bAmax_ = min( bAmax_(adj_) );
crit_freq_ = min(freq_(adj_));
else
crit_moddepth_ = -1;
crit_deltahyperfine_ = -1;
crit_dd_ = -1;
crit_bAmax_ = -1;
crit_freq_ = -1;
end
ClusterH.ModulationDepth(icluster,:) = [min(moddepth_),max(moddepth_), ModulationDepth(prox_,dist_), crit_moddepth_];
ClusterH.Hyperfine(icluster,:) = [min(abs(hyperfine_)),max(hyperfine_)];
ClusterH.DeltaHyperfine(icluster,:) = [min(deltahyperfine_),max(deltahyperfine_), DeltaHyperfine(prox_,dist_), crit_deltahyperfine_];
ClusterH.Nuclear_Dipole(icluster,:) = [min(dd_),max(dd_), Nuclear_Dipole(prox_,dist_), crit_dd_];
ClusterH.Frequency_Pair(icluster,:) = [min(freq_),max(freq_), Frequency_Pair(prox_,dist_), crit_freq_];
ClusterH.bAmax(icluster,:) = [min(bAmax_),max(bAmax_), Nuclear_Dipole(prox_,dist_), crit_bAmax_];
end
ClusterH.DeltaHyperfine_over_Nuclear_Dipole = ClusterH.DeltaHyperfine./ClusterH.Nuclear_Dipole;
ClusterH.GaussianRMSD = getGaussianRMSD(ClusterH.ModulationDepth,ClusterH.Frequency_Pair,TM_powder);
end