10-28-2018 08:57 PM
非数で初期化した1D配列を、非数を「要素」として検索すると「要素の指標」として-1ではなく0が帰って来るんですけど(LabVIEW2017SP1f3で確認)、うちだけの現象でしょうか?
http://zone.ni.com/reference/ja-XX/help/371361P-0112/glang/search_1d_array/
仕様だとするとあんまりうれしくない…。
10-28-2018 09:41 PM - 編集済み 10-28-2018 09:44 PM
非数の比較だと、下記の話はありますね。後で私も試してみます。
10-29-2018 01:00 AM
これ(「2つのNaN定数をLabVIEWで比較すると結果がFALSEになります」)を踏まえると、「1D配列検索 関数」は、「等しい? 関数」をForループでぐるぐる回したのと等価な動きが期待されるだけに、裏切られたショックがでかのすけっつーか…。
ビットパターンとして比較してるのでしょうか?
「1D配列補間 関数」も、「小数指標またはx」に非数を入力した場合に、「y値」に非数が伝搬するのを期待すると裏切られますね(多分、-∞を入力したのと同じ振舞い)。
http://zone.ni.com/reference/ja-XX/help/371361P-0112/glang/interpolate_1d_array/
10-29-2018 01:00 AM
LabVIEW 2017で試してみました。
確かに、NaNのみの1D配列から検索すると、検索結果はindex "0"でした。
"0"というのは判断に困るところがあるので、先頭に"2"を追加し、要素を増やして試しました。
結果、index "1"が返ってきました。なので検索のアルゴリズムとしては、NaNを正しく見つけているようですね。
一応比較関数を試しましたが、やはりこちらはNaNを見つけられませんでした。
動くのでよいかもしれませんが、少し気持ちが悪いです。
確実なのは、Forループの自動指標配列で1要素ずつ取得し、「非数?」関数で比較することでしょうか。