Matlab 带参数“single”的倍频程nan函数

Matlab 带参数“single”的倍频程nan函数,matlab,octave,nan,Matlab,Octave,Nan,我正在阅读的代码有一行: someData = nan(3, 4, 5, "single") 我找不到nan函数的文档,但这段代码似乎生成了一个3x4x5的nan矩阵。然而,我不知道单身是做什么的。将其替换为随机的其他字符串会得到错误:NaN:指定的数据类型无效,将其替换为double可能会得到相同的结果。单精度的功能是什么?它使nan的结果矩阵成为包含单精度浮点数的矩阵。如果需要单精度,则需要明确指定,否则默认情况下Octave和MATLAB将使用双精度 您可以使用类检查输出的类 就外观而言

我正在阅读的代码有一行:

someData = nan(3, 4, 5, "single")

我找不到nan函数的文档,但这段代码似乎生成了一个3x4x5的nan矩阵。然而,我不知道单身是做什么的。将其替换为随机的其他字符串会得到错误:NaN:指定的数据类型无效,将其替换为double可能会得到相同的结果。单精度的功能是什么?

它使nan的结果矩阵成为包含单精度浮点数的矩阵。如果需要单精度,则需要明确指定,否则默认情况下Octave和MATLAB将使用双精度

您可以使用类检查输出的类

就外观而言,它们看起来是一样的,直到您开始尝试存储超出可以用单精度浮点表示法表示的数字范围的数字为止。这是因为单精度数字使用的内存量只有双精度数字的一半

a = nan(1, 1, 'single');
a(1) = 1e-64
% 0

b = nan(1, 1);
b(1) = 1e-64
% 1.000e-64
此外,如果我们与WHO一起检查变量,我们可以确认大小差异

a = nan(1,1,'single');
b = nan(1,1)
whos('a', 'b')

%    Variables in the current scope:
%   
%      Attr Name        Size                     Bytes  Class
%      ==== ====        ====                     =====  =====
%           a           1x1                          4  single
%           b           1x1                          8  double

它使nan的结果矩阵成为包含单精度浮点数的矩阵。如果需要单精度,则需要明确指定,否则默认情况下Octave和MATLAB将使用双精度

您可以使用类检查输出的类

就外观而言,它们看起来是一样的,直到您开始尝试存储超出可以用单精度浮点表示法表示的数字范围的数字为止。这是因为单精度数字使用的内存量只有双精度数字的一半

a = nan(1, 1, 'single');
a(1) = 1e-64
% 0

b = nan(1, 1);
b(1) = 1e-64
% 1.000e-64
此外,如果我们与WHO一起检查变量,我们可以确认大小差异

a = nan(1,1,'single');
b = nan(1,1)
whos('a', 'b')

%    Variables in the current scope:
%   
%      Attr Name        Size                     Bytes  Class
%      ==== ====        ====                     =====  =====
%           a           1x1                          4  single
%           b           1x1                          8  double

关于nan的文档可以在这里找到,您可以在这里找到关于数据类型的信息。您说找不到nan函数的文档是什么意思?你只需在八度音阶舞会上输入help nan。这里有文档记录:可选参数类指定返回类型,可以是双参数类,也可以是单参数类。嗯,为什么它不区分大小写呢?关于nan的文档在这里找到,您可以在这里找到关于数据类型的信息。什么意思您找不到nan函数的文档?你只需在八度音阶舞会上输入help nan。这里有文档记录:可选参数类指定返回类型,可以是双精度的,也可以是单精度的。嗯,为什么不区分大小写呢?您应该添加whos将显示不同大小的矩阵,因为单精度使用的内存比双精度的少。您应该添加whos将显示不同大小的矩阵,因为单次使用的内存比双次使用的内存少。