似乎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。你认为这是一种一致的使用吗?
发布于 2013-01-11 20:42:13
以下是MATLAB似乎使用的约定:
对于非数字:始终使用NaN ( isnan()等组合除外
For Infinite:对于函数使用inf,对于值使用Inf (对于倍数使用INFs,当然这不是命令)。请注意,这有点棘手,因为这意味着inf的计算结果是Inf。
推论自:
help Inf:inf(N)是一个由inf组成的N乘N矩阵。
help nan:NaN(N)是一个N乘N的NaN矩阵。
help isnan:例如,isnan(pi NaN Inf -Inf)是0 1 0 0。
发布于 2013-01-11 06:32:08
在习惯用法上最一致的是nan和inf,但MATLAB为您提供了另一种将NaN和Inf大写的方法,就像您在其他任何地方都可以找到它一样,例如在打印输出中。请注意,MATLAB区分大小写。没有人会使用Nan或InF,所以MATLAB不提供这些“别名”。
编辑:用于数据向量的,就像在[3.7, 1.2, NaN, 3.1]中一样,我发现自己也一直在使用NaN,但下面的实验非常强烈地表明,这种使用是而不是与MATLAB的内部工作密切相关的。创建一个返回4的函数n = NaN(),并将其保存为当前文件夹中的NaN.m。像上面这样定义向量将导致[3.7, 1.2, 4.0, 3.1]表明MATLAB不将NaN理解为常量,并将查找一个函数,根据MATLAB的习惯,该函数应全部拼写为小写。
现在,让我们在忘记之前快速删除NaN.m,并继续在数据列中使用NaN。
https://stackoverflow.com/questions/14268423
复制相似问题