Come detto altri sono uguali per un array monodimensionale.
L'IMHO dal punto di vista della leggibilità del codice length
deve essere utilizzato su matrici unidimensionali. Si tratta di "intentional programming", si vede il codice e si capisce cosa aveva in mente il programmatore quando concepiva il suo lavoro. Quindi quando vedo numel
so che è usato su una matrice.
length
vs. numel
era un argomento di discussione nel nostro team per un certo numero di anni. Ex sviluppatore senior non si è preoccupato della funzionalità del codice, solo del lavoro svolto e utilizzato solo numel
in un codice altrimenti non ben leggibile/formattato. L'altro ragazzo è un matematico e utilizzava length
solo su array numerici che erano per lui "veri" array. Per gli array di celle e gli array di strutture ha utilizzato numel
.
Hai ragione sulla parte performance. Ho appena eseguito 100 iterazioni di numel contro lunghezza su x = 1: 100000000 e numel era in media 3,0919 volte più veloce. Non dovrebbe importare molto per gli array più piccoli. – Doresoom
... e ora sono davvero curioso delle prestazioni di numel/lunghezza rispetto alle dimensioni dell'array. – Doresoom
LENGTH non sarà mai il collo di bottiglia delle prestazioni nel tuo programma! Solo i reali miglioramenti delle prestazioni contano. Per tutti gli altri casi, la leggibilità del codice è importante. – Mikhail