idxof.m
Allows interaction specification by spin label rather than number.
Syntax
idx=idxof(sys,label)
Arguments
sys - Spinach input structure that includes a sys.labels field with unique labels label - label whose index is to be returned
Outputs
idx - the index of the spin, an integer
Examples
The following spin system specification, where chemists had provided the parameters using their own labels, would have been laborious and error-prone without the ability to refer to spins by their chemical labels.
% Magnet induction sys.magnet=9.3946; % Spin system sys.isotopes={'13C','13C','13C','13C','13C','13C',... '1H','1H','1H','1H','1H','1H','1H','1H'}; sys.labels={'C1','C2','C3','C4','C5','C6',... 'Ha','Hb','Hc','Hd1','Hd2','He1','He2','He3'}; % Chemical shifts inter.zeeman.scalar={120.05 130.70 66.90 160.50 191.70 26.80 ... 5.40 5.32 5.97 4.74 4.74 2.48 2.48 2.48}; % Scalar couplings (DFT signs and disambiguation) inter.coupling.scalar=cell(14,14); inter.coupling.scalar{idxof(sys,'C1'),idxof(sys,'Ha')}= +155.90; inter.coupling.scalar{idxof(sys,'C1'),idxof(sys,'Hb')}= +160.04; inter.coupling.scalar{idxof(sys,'C1'),idxof(sys,'Hd1')}= +5.48; inter.coupling.scalar{idxof(sys,'C1'),idxof(sys,'Hd2')}= +5.48; inter.coupling.scalar{idxof(sys,'C2'),idxof(sys,'Hc')}= +159.05; inter.coupling.scalar{idxof(sys,'C2'),idxof(sys,'Hd1')}= -4.47; inter.coupling.scalar{idxof(sys,'C2'),idxof(sys,'Hd2')}= -4.47; inter.coupling.scalar{idxof(sys,'C2'),idxof(sys,'Ha')}= -3.14; inter.coupling.scalar{idxof(sys,'C2'),idxof(sys,'Hb')}= -0.85; inter.coupling.scalar{idxof(sys,'C3'),idxof(sys,'Hd1')}=+149.15; inter.coupling.scalar{idxof(sys,'C3'),idxof(sys,'Hd2')}=+149.15; inter.coupling.scalar{idxof(sys,'C3'),idxof(sys,'Hc')}= -13.87; inter.coupling.scalar{idxof(sys,'C3'),idxof(sys,'Ha')}= +4.63; inter.coupling.scalar{idxof(sys,'C3'),idxof(sys,'Hb')}= +7.97; inter.coupling.scalar{idxof(sys,'C4'),idxof(sys,'Hd1')}= +3.20; inter.coupling.scalar{idxof(sys,'C4'),idxof(sys,'Hd2')}= +3.20; inter.coupling.scalar{idxof(sys,'C4'),idxof(sys,'He1')}= +1.60; inter.coupling.scalar{idxof(sys,'C4'),idxof(sys,'He2')}= +1.60; inter.coupling.scalar{idxof(sys,'C4'),idxof(sys,'He3')}= +1.60; inter.coupling.scalar{idxof(sys,'C5'),idxof(sys,'He1')}= -6.69; inter.coupling.scalar{idxof(sys,'C5'),idxof(sys,'He2')}= -6.69; inter.coupling.scalar{idxof(sys,'C5'),idxof(sys,'He3')}= -6.69; inter.coupling.scalar{idxof(sys,'C6'),idxof(sys,'He1')}=+129.73; inter.coupling.scalar{idxof(sys,'C6'),idxof(sys,'He2')}=+129.73; inter.coupling.scalar{idxof(sys,'C6'),idxof(sys,'He3')}=+129.73; inter.coupling.scalar{idxof(sys,'Ha'),idxof(sys,'Hb')}= -1.30; inter.coupling.scalar{idxof(sys,'Ha'),idxof(sys,'Hc')}= +17.40; inter.coupling.scalar{idxof(sys,'Hb'),idxof(sys,'Hc')}= +10.39; inter.coupling.scalar{idxof(sys,'Ha'),idxof(sys,'Hd1')}= -1.50; inter.coupling.scalar{idxof(sys,'Ha'),idxof(sys,'Hd2')}= -1.50; inter.coupling.scalar{idxof(sys,'Hb'),idxof(sys,'Hd1')}= -1.30; inter.coupling.scalar{idxof(sys,'Hb'),idxof(sys,'Hd2')}= -1.30; inter.coupling.scalar{idxof(sys,'Hc'),idxof(sys,'Hd1')}= +5.95; inter.coupling.scalar{idxof(sys,'Hc'),idxof(sys,'Hd2')}= +5.95;
See also
Import,_export,_and_visualisation
Version 2.8, authors: Ilya Kuprov