为什么matlab中的find会返回double值

Bas*_*ing 3 indexing matlab integer return-type find

find内部函数matlab中给定locigal参数的计算结果真实回报率指标.
因此我想知道,为什么返回值(对于索引)是类型double而不是uint32或者uint64像矩阵的最大索引可能是.
可能与此相关的另一个奇怪的事情是,正在运行

[~,max_num_of_elem]=computer
Run Code Online (Sandbox Code Playgroud)

返回变量max_num_of_elem中矩阵允许的最大元素数,该变量也是类型double.

Moh*_*nia 6

我只能猜测,但可能因为广泛的功能只支持double.跑

setdiff(methods('double'), methods('uint32'))
Run Code Online (Sandbox Code Playgroud)

查看doubleuint32您的MATLAB版本定义的函数,而不是.

在MATLAB中,整数数据类型存在溢出问题,可能会引入一些难以检测的错误.

  • 可能也是因为历史原因;MATLAB最初只有`double`类型,直到后来的版本才引入其他类型:http://blogs.mathworks.com/steve/2013/01/15/data-types/ (2认同)