Como otros dicen que son los mismos para una matriz unidimensional.
En mi humilde opinión desde el punto de vista de legibilidad del código length
se debe utilizar en matrices unidimensionales. Se trata de "intentional programming", puede ver el código y comprender lo que el programador tenía en mente al concebir su trabajo. Entonces cuando veo numel
sé que se usa en una matriz.
length
contra numel
fue un tema de debate en nuestro equipo durante varios años. El antiguo desarrollador principal no se preocupó por la capacidad de código, solo por el trabajo realizado y solo se usó numel
en un código que, por lo demás, no se podía leer/formatear. Other guy es un matemático y usó length
solo en matrices numéricas para matrices "reales". Para arreglos de celdas y matrices de estructuras, usó numel
.
Tienes razón en la parte del rendimiento. Acabo de ejecutar 100 iteraciones de numel vs longitud en x = 1: 100000000 y numel fue en promedio 3.0919 veces más rápido. Sin embargo, no debería importar mucho para arreglos más pequeños. – Doresoom
... y ahora estoy realmente curioso sobre el rendimiento de numel/length frente al tamaño de la matriz. – Doresoom
¡LENGTH nunca será el cuello de botella de rendimiento en su programa! Solo las mejoras de rendimiento reales importan. Para todos los demás casos, la legibilidad del código es importante. – Mikhail