Мне очень нравится команда tert() в DigitalMicrograph, но я чего-то в ней не понимаю. Рассмотрим тестовый сценарий:
image test:= realimage("",4,100,1);
number value1 = 1;
number value2 = 0.1;
if(value2==0.1) result("\nvalue2 really equals 0.1");
test.setPixel(5,0,value1);
test.setPixel(10,0,value2);
image mask = imageclone(test);
mask = 0;
mask = tert(test==value1,1,mask);
mask = tert(test==value2,1,mask);
mask.showimage()
Скрипт находит пиксель, в котором массив «тест» равен значению1, но не находит его для значения2. Похоже, что команда tert понимает условие (test==value) только тогда, когда «значение» является целым числом. В противном случае считается, что эквивалентность НЕ ТОЧНА. Это странно, потому что число Value2 было неявно (я предполагаю) определено как действительное число, а затем присвоено реальному массиву. Как DigitalMicrograph определяет, является ли значение целым/действительным/двойным?
X = tert(A,B,C)
также может быть записано какX = A ? B : C
, что иногда легче читать (и также работает со строками). - person BmyGuest   schedule 21.05.2016