私は DigitalMicrograph の tert() コマンドがとても気に入っていますが、理解できないことがあります。テスト スクリプトを考えてみましょう。
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()
スクリプトは、"test" 配列が value1 に等しいピクセルを見つけますが、value2 ではこれを見つけません。「値」が整数の場合にのみ、tert コマンドが条件 (test==value) を理解するようです。それ以外の場合、等価性は EXACT ではないと見なされます。数値 Value2 が暗黙的に (私が推測するに) 実数として定義されてから、実数配列に割り当てられたため、これは奇妙です。DigitalMicrograph は値が整数か実数か倍精度かをどのように判断しますか?