find
中的
matlab
函数返回给定局部参数计算为 true 的索引。double
类型,而不是像矩阵中最大索引那样的 uint32
或 uint64
类型。[~,max_num_of_elem]=computer
返回变量
max_num_of_elem
中矩阵允许的最大元素数,该变量也是 double
类型。
我只能猜测,但可能是因为很多功能只支持
double
。奔跑吧
setdiff(methods('double'), methods('uint32'))
查看您的 MATLAB 版本上为
double
定义了哪些函数,而不为 uint32
定义了哪些函数。
MATLAB 中还存在整数数据类型的溢出问题,这可能会引入一些难以检测的错误。
range 来覆盖内存中尽可能多的索引,但它没有 precision 来表示所需的所有整数。因此,如果您使用 find 从一个大矩阵中创建索引列表,然后使用 ind2sub 将它们转换为下标,您会偶尔丢失行或列,其中 double 无法表示该特定整数。这真是一个痛苦。