[英]inf or Inf? nan or NaN?
似乎inf
和Inf
在MATLAB中完全相同(同樣是nan
和NaN
,但不是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)
樣式跟zeros
和ones
小的大寫。 為了分配單個值,我使用x = Inf
。 你認為這是一貫的使用嗎?
大多數慣用的一致性都是nan
和inf
但是MATLAB為你提供了另外一種資本化NaN
和Inf
的方式,你可以在其他地方找到它,例如在打印輸出中。 需要注意的是MATLAB 是區分大小寫的。 沒有人會使用Nan
或InF
,因此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.