concept-collection / seqlab
seqlab / src / engine / pulseq / +mr / makeLabel.m
39 lines · 1.3 KBBlameHistoryRaw
1function out = makeLabel(type, label, value)
2%makeLabel Create a ADC Label.
3% label=makeLabel() Create a Label event for ADC line
4% Possible values for type are: 'SET','INC'.
5% Label may be a counter of a flag and should be one of
6% (counters) 'SLC','SEG','REP','AVG','SET','ECO','PHS','LIN','PAR','ACQ'
7% (flags) 'NAV','REV','SMS','REF','IMA','NOISE'
8% (control) 'PMC','NOROT','NOPOS','NOSCL','ONCE','TRID'
9% Value: numeric value of the parameter (increment may be negative)
10% or true/false for a flag
12% See also Sequence.addBlock, mr.getSupportedLabels
15supported_labels=mr.getSupportedLabels();
16if nargin~=3
17 error('makeLabel:invalidArguments','Must supply exactly 3 parameters');
18end
19if ~any(ismember(supported_labels,label))
20 error('makeLabel:invalidArguments','Must supply a valid label');
21end
22if ~any(ismember({'SET','INC'},type))
23 error('makeLabel:invalidArguments','Must supply a valid type');
24end
25if ~isnumeric(value) && ~islogical(value)
26 error('makeLabel:invalidArguments','Must supply a valid numeric or logical value');
27end
29switch(type)
30 case 'SET'
31 out.type = 'labelset';
32 case 'INC'
33 out.type = 'labelinc';
34 otherwise
35 error('unknown label type');
36end
37out.label=label;
38out.value=value;
39end