首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MATLAB的numel函数与长度函数的区别

MATLAB的numel函数与长度函数的区别
EN

Stack Overflow用户
提问于 2010-06-25 16:33:13
回答 3查看 30.4K关注 0票数 41

我知道length(x)返回max(size(x))numel(x)返回x的元素总数,但是哪一个对1×n数组更好?这重要吗,还是在这种情况下是可以互换的?

编辑:只用于踢:

看上去它们在性能上是一样的,直到你得到100 K元素。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-06-25 16:44:37

在这种情况下,他们返回相同的,没有区别。从性能上看,它依赖于MATLAB中阵列的内部工作。例如,如果数组中有多少个元素(不管形状如何),那么numel是尽可能快的,而max(size(x))似乎需要更多的工作才能获得相同的东西(检索大小,然后在其中找到最大值)。我习惯于在这种情况下使用numel,但是除了性能演讲(假设)之外,我认为它们是可以互换的。

票数 19
EN

Stack Overflow用户

发布于 2010-06-25 16:38:58

对于1×N数组,它们本质上是相同的.对于多维数组M,它们可以给出不同的结果:

  • numel(M)等同于prod(size(M))
  • length(M)等同于max(size(M))。如果M为空(即任何维数为0),则length(M)为0。
票数 22
EN

Stack Overflow用户

发布于 2010-06-25 16:52:18

正如其他人所说,它们对于一维数组是一样的。

从代码可读性角度来看,length应该在一维数组上使用.这是关于“有意拟订方案”的,您可以看到代码,并了解程序员在构思他的工作时的想法。所以当我看到numel时,我知道它是用在矩阵上的。

多年来,lengthnumel是我们团队中的一个讨论主题。前高级开发人员并不关心代码可重用性,只关心正在完成的工作,并且只在不太好读/格式化的代码中使用numel。另一个人是个矩阵学家,只在数字数组上使用length,这是给他“真实”数组的。对于单元格数组和结构数组,他使用了numel

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3119739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档