arrays - example - Diferencia entre las funciones de numeración y longitud de MATLAB
matrix of matrix matlab (3)
Como otros dijeron que son lo mismo para una matriz unidimensional.
En mi humilde opinión, la length
punto de vista de legibilidad del código debe usarse en arreglos unidimensionales. Se trata de "programación intencional" , ves el código y entiendes lo que el programador tenía en mente al concebir su trabajo. Entonces, cuando veo numel
, sé que se usa en una matriz.
length
vs. numel
fue un tema de discusión en nuestro equipo durante varios años. El antiguo desarrollador senior no se preocupó por la capacidad de código, solo por el trabajo realizado y solo utilizó numel
en otro numel
que no era muy legible / formateado. Otro tipo es un matemático y usa la length
solo en matrices numéricas para matrices "reales". Para matrices de celdas y matrices de estructuras, utilizó numel
.
Sé que length(x)
devuelve max(size(x))
y numel(x)
devuelve la cantidad total de elementos de x, pero ¿cuál es mejor para una matriz de 1 por n? ¿Importa, o son intercambiables en este caso?
EDITAR: solo por patadas:
Parece que son los mismos en cuanto a rendimiento hasta llegar a 100k elementos.
En ese caso, devuelven lo mismo y no hay diferencia. En términos de rendimiento, depende del funcionamiento interno de las matrices en MATLAB. Por ejemplo, si hay metainformaciones sobre cuántos elementos hay en la matriz (sin importar la forma), entonces numel es lo más rápido posible, mientras que max (tamaño (x)) parece necesitar más trabajo para obtener lo mismo (recuperación de tamaños, y luego encontrar el máximo entre ellos). Estoy acostumbrado a usar numel
en ese caso, pero aparte del discurso de interpretación (hipotético), diría que son intercambiables.