好像都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)
Run Code Online (Sandbox Code Playgroud)
如果它们是相同的,应该在实践中使用哪一个?为了分配数组,我一直在使用x = inf(3,5)样式跟随zeros并且ones都是小型的.为了分配单个值,我使用x = Inf.你认为这是一贯的使用吗?
s.b*_*ara 12
大多数惯用的一致都是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) 是 N×N 的 INF 矩阵。
help nan:NaN(N) 是 NaN 的 N×N 矩阵。
help isnan:例如,isnan([pi NaN Inf -Inf]) 为 [0 1 0 0]。