在内部MATLAB函数(R2014a)的文档段落中,我找到以下 1 :
% GRP2IDX treats NaNs (numeric or logical), ...
这句话暗示有一个X
, isnan(X)
和islogical(X)
都评估为true
。这对我来说毫无意义。我当然无法生成这样的X
。例如:
>> X = true;
>> X(1, 1) = NaN;
NaN's cannot be converted to logicals.
我的问题:是否有其他方法可以解释上述更有意义的行?
1 FWIW,完整段落是这样的:
% GRP2IDX treats NaNs (numeric or logical), empty strings (char or cell array
% of strings), or <undefined> values (categorical) in S as missing values and
% returns NaNs in the corresponding rows of G. Neither GN nor GL include
% entries for missing values.
要获得更多内容,如果您有R2014a
(或可能 R2013b
),请运行open table2gidx
,然后在编辑器窗口中向下滚动出现。 (grp2idx
是table2gidx
的内部函数。)
答案 0 :(得分:3)
不,尽管帮助似乎暗示了什么,但逻辑值只能是0
(false)或1
(true)。请参阅help logical
或documentation。 NaN
(not a number)严格来说是为浮点值定义的数值数据类型。它是在IEEE 754规范下定义的。
此外isnumeric(NaN)
和isfloat(NaN)
返回true。并class(NaN)
返回'double'
。您可以获得单精度NaN
,因为它只是一个浮点值:single(NaN)
。
答案 1 :(得分:0)
将其解释为“NaNs(在数字或逻辑数组中)”。由于NaN不会出现在逻辑数组中,因此该位是多余的,但这并不会使其不正确。