邏輯測試檢查範圍並傳回 True 或 False你好,
我正在嘗試檢查變數內單元格中的值是否位於 0.50 到 2.0 之間的值範圍內,以及它是否落入該範圍內以返回 true,如果不返回 false。我在資料表和列資訊中,並在編輯公式中輸入以下內容:
If (0.50 < ( :Name( "P1-R1-D1-L1" ) > 2.0), "True", "False") <BR /><BR />// and
<BR />If (0.50 < ( :Name( "P1-R1-D1-L1" ))|(2.0 > ( :Name( "P1-R1-D1-L1" ), "True", "False"))
但兩者都不適合我,我做錯了什麼,任何幫助將不勝感激
謝謝
回覆:邏輯測試檢查範圍並傳回 True 或 False再次感謝 txnelson,感謝您的所有幫助,非常感謝回覆:邏輯測試檢查範圍並傳回 True 或 False謝謝傑夫,很好的解釋
回覆:邏輯測試檢查範圍並傳回 True 或 False@tx尼爾森給了你一個可行的例子,但我可以解釋你在嘗試中出錯的地方。
If (0.50 < ( :Name( "P1-R1-D1-L1" ) > 2.0), "True", "False")
在此,您嘗試進行 JMP 不支援的複雜比較,即 a < b > c,即 a少於乙比...更棒C。
在公式編輯器中,您可以看到 JMP 提供的複雜比較,並且@tx尼爾森用過的:

請注意幫助文本,它提供了 JMP 是一種函數式語言的線索,而這些複雜的運算子實際上是函數 Less LessEqual() 和 LessEqual Less() 。 JMP 沒有用於您想要進行比較的功能。
對於第二次嘗試:
If (0.50 < ( :Name( "P1-R1-D1-L1" ))|(2.0 > ( :Name( "P1-R1-D1-L1" ), "True", "False"))
您的括號超出了需要,而且它們位於錯誤的位置。 這是一個更正後的版本:
If( 0.50 < :Name( "P1-R1-D1-L1" ) | 2.0 > :Name( "P1-R1-D1-L1" ),
"True",
"False"
)
然而,讓我們考慮一下您在這個邏輯比較中的要求。 您要求 JMP 檢查您的色譜管是否比...更棒.5或者2.0 是比...更棒你的專欄。 對於列的所有值都是如此。 如果您的色譜柱小於 0.5,那麼 2.0 將大於您的色譜柱。 如果您的色譜柱大於 2.0,則 0.5 將小於您的色譜柱。
所以,您可能想要這樣的版本@tx尼爾森提供,使用 a < b <= c 構造檢查您的列是否在 0.5 到 2.0 範圍內。
回覆:邏輯測試檢查範圍並傳回 True 或 False這是一段 JSL,它根據您提供的規格建立一個列
Names Default To Here( 1 );
dt = New Table( "Example",
add rows( 20 ),
New Column( "P1-R1-D1-L1", formula( Random Uniform( 0, 4 ) ) )
);
dt << New Column( "TorF",
character,
formula( If( 0.50 <= :Name( "P1-R1-D1-L1" ) <= 2.0, "True", "False" ) )
);