inf或Inf?纳米还是NaN?

Mem*_*ing 6 matlab

好像都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)
Run Code Online (Sandbox Code Playgroud)

如果它们是相同的,应该在实践中使用哪一个?为了分配数组,我一直在使用x = inf(3,5)样式跟随zeros并且ones都是小型的.为了分配单个值,我使用x = Inf.你认为这是一贯的使用吗?

s.b*_*ara 12

大多数惯用的一致都是nan,inf但MATLAB为您提供了大写的替代方式,NaN以及Inf您在其他地方找到它的方式,例如打印输出.需要注意的是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在数据列中使用.


Den*_*din 2

以下是 MATLAB 使用的约定:

对于非数字:始终使用NaN(除非是组合,例如isnan()

对于无限:用于inf函数并用于Inf值(以及INFs倍数,但这当然不是命令)。请注意,这有点棘手,因为这意味着 的评估inf给出Inf

推导自:

help Inf:inf(N) 是 N×N 的 INF 矩阵。

help nan:NaN(N) 是 NaN 的 N×N 矩阵。

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