簡體   English   中英

inf或Inf? 納米還是NaN?

[英]inf or Inf? nan or NaN?

似乎infInf在MATLAB中完全相同(同樣是nanNaN ,但不是Nan )。 有什么區別嗎?

>> which inf
built-in (/Applications/MATLAB_R2011b.app/toolbox/matlab/elmat/inf)
>> which Inf
built-in (/Applications/MATLAB_R2011b.app/toolbox/matlab/elmat/Inf)

如果它們是相同的,應該在實踐中使用哪一個? 為了分配數組,我一直使用x = inf(3,5)樣式跟zerosones小的大寫。 為了分配單個值,我使用x = Inf 你認為這是一貫的使用嗎?

大多數慣用的一致性都是naninf但是MATLAB為你提供了另外一種資本化NaNInf的方式,你可以在其他地方找到它,例如在打印輸出中。 需要注意的是MATLAB 區分大小寫的。 沒有人會使用NanInF ,因此MATLAB不提供這些“別名”。

編輯:為了在數據向量中使用,如[3.7, 1.2, NaN, 3.1] ,我一直發現自己也使用NaN ,但是下面的實驗非常強烈地表明這種用法與MATLAB的內部工作並不相關。 創建一個函數n = NaN()返回4並將其保存為當前文件夾中的NaN.m 如上所述定義向量將導致[3.7, 1.2, 4.0, 3.1]顯示MATLAB不將 NaN 理解 為常量 ,並將查找一個函數,根據MATLAB習語,該函數應全部拼寫為小寫。

現在讓我們在忘記之前快速刪除NaN.m ,並在數據列中繼續使用NaN

以下是MATLAB似乎使用的約定:

對於非數字:始終使用NaN (除了isnan()組合

對於無限:使用inf作為函數並使用Inf作為值(和INFs作為倍數,但這當然不是命令)。 請注意,這有點棘手,因為它意味着inf的評估給出了Inf

推導自:

help Inf :inf(N)是INF的N-by-N矩陣。

help nan :NaN(N)是NaNs的N-by-N矩陣。

help isnan :例如,isnan([pi NaN Inf -Inf])是[0 1 0 0]。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM