我有一個代碼試圖實作其中的一部分:
我有矩陣A:
0.241 0.095 0.695
0.002 0.774 0.590
0.991 0.406 0.997
0.435 0.217 0.087
0.729 0.898 0.343
我不明白這句話背后的邏輯:
if ((any(0.250 <= A[ ,3] & A[ ,3] <= 0.375)) == FALSE) {
print("Done")
}
A[ ,3]給0.695 0.590 0.997 0.087 0.343
0.250 <= A[ ,3]給TRUE TRUE TRUE FALSE TRUE
A[ ,3] <= 0.375給FALSE FALSE FALSE TRUE TRUE
但是,當我更改0.250為0.4:
0.4 <= A[ ,3]給TRUE TRUE TRUE FALSE FALSE
A[ ,3] <= 0.375給FALSE FALSE FALSE TRUE TRUE
這次 if 陳述句列印"Done"
這是關于FALSEor的數量TRUE嗎?
uj5u.com熱心網友回復:
在第一種情況下,0.250 <= A[ ,3] & A[ ,3] <= 0.375回傳,僅當兩個陳述句都是時FALSE FALSE FALSE FALSE TRUE邏輯&回傳。該函式然后檢查傳遞給它的任何值是否評估為。因此,它在這種情況下回傳,不滿足條件并且不進入回圈。TRUETRUEany()TRUETRUE
第二種情況,0.4 <= A[ ,3] & A[ ,3] <= 0.375returnsFALSE FALSE FALSE FALSE FALSE所以any()函式回傳FALSE并滿足條件進入回圈。
uj5u.com熱心網友回復:
這是非常丑陋的邏輯,等效且更簡單的代碼if (all(A[ ,3] < 0.250 | A[ ,3] > 0.375))。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/453410.html
上一篇:數元音和輔音
