Pourquoi ne matlab ont 1 l'indexation en fonction de
J'ai utilisé pour programmer en Java et Python plus tôt, mais ont récemment commencé à utiliser MATLAB pour beaucoup de choses (plus précisément la vision par ordinateur les algorithmes).
Cependant MATLAB est l'indexation des tableaux commençant à partir de 1 au lieu de 0, ce qui est la norme dans presque tous les langages de programmation que j'ai rencontré jusqu'à présent.
La raison de 0 basée sur l'indexation fait sens pour moi était comme ça:
Dans chaque processeur, j'ai vu, l'adresse de l'index commence à 0 x 00000000 dire dans un 8-bits processeur et Si je veux enregistrer les 5 numéros, ils devraient être stockées dans l'adresse 0x00000000 à 0x00000004 . Par conséquent, il est logique d'avoir indexation à partir de 0 dans les langages de programmation.
Alors que j'étais à la recherche pour cette question j'ai trouvé Liste des 1 indexés sur les langages de programmation? et http://en.wikipedia.org/wiki/Comparison_of_programming_languages_(tableau) être utile.
Pour moi il n'est pas très pratique de la notation, peut-être parce que j'ai utilisé le code dans d'autres langues avant. Mais je ne comprends toujours pas pourquoi MATLAB (et même Julia maintenant) a 1-tableau de base de l'indexation et les avantages qu'il offre. Peut-on liste les avantages?
Je crois que cela a à voir avec MATLAB original fondements d'être écrit en Fortran, qui dispose également de 1 à base d'indexation. Cette question a été battu à mort sur Usenet, de sorte Googler il devrait révéler plus de détails. De toute façon, je vais voter pour fermer comme avis, dès lors que la vraie réponse réside dans Cleve Moler la tête. Même si quelqu'un était de produire une référence comme pourquoi c'est le cas, la question est encore hors-sujet pour. En attendant, si vous allez utiliser MATLAB, de s'habituer à elle et de traiter avec elle; c'est ce que le reste d'entre nous l'ont fait.
Dans une liste de nombres, disons 45, 17, 94, 37, je pense que le premier nombre de la liste que 45. Parler du numéro zéro a pour moi aucun sens sur le plan conceptuel. Pour cette seule raison que j'aime bien 1 en fonction de l'indexation. Comme Phil l'a dit, ce qui reflète la notation mathématique, qui est le premier (?) utilisation prévue pour Matlab.
OriginalL'auteur Anoop | 2014-03-20
Vous devez vous connecter pour publier un commentaire.
Pourquoi a-t-elle 1-en fonction de l'indexation? Des raisons historiques. (Cleve Moler décidé ainsi). Il a probablement à voir avec le 1-en fonction de l'indexation en cours de la convention pour la matrice de notation.
Pourquoi n'est-il pas mettre en œuvre de 0 basée sur l'indexation de trop?
Pour certains belle lumière de lecture?
En particulier, pour les commentaires de Cleve Moler (le créateur de MATLAB) et Steve Seigneur (MathWorks de l'Ingénieur). Après beaucoup d'échanges, le raisonnement de base (au moins en 2001) pour ne pas mettre en œuvre un supplémentaire 0 basée sur l'indexation n'était pas pour tout de la philosophie ou des raisons de compatibilité, même si elle a commencé comme une compatibilité descendante argument, mais parce qu'il exigerait simplement trop beaucoup d'efforts à la mise à jour de MATLAB fonctions intégrées:
Traduction: Ils ne veulent pas écrire du nouveau tracé, l'impression, etc. routines.
Mais malheureusement le lien est en bas. La page n'affiche plus que les "en décembre 2017 au Lecteur application a été arrêtée."
lien mis à jour
OriginalL'auteur chappjc
Matlab est conçu comme une façon de faire de la fonctionnalité de langages de programmation accessible à des personnes qui n'ont pas appris à code. Ayant les indices commencent à 0 peut être une source commune de bugs pour les personnes qui ne connaissent pas la programmation, et le point de Matlab est de permettre aux gens d'appliquer les mathématiques qu'ils comprennent les problèmes qu'ils doivent résoudre, sans beaucoup de connaissances supplémentaires.
La plupart des tâches que Matlab est utilisé pour, par exemple, de la physique et de l'ingénierie, de l'utilisation de la convention d'indices commencent à 1 dans la plupart de la littérature, de sorte que les gens qui travaillent dans ces domaines n'ont pas besoin de convertir leurs algorithmes en soustrayant 1 de tout.
En plus de cela, Matlab est l'abréviation de "matrix laboratory", et dans les mathématiques, la convention est généralement à l'indice de matrices à partir de 1, de sorte qu'il sorte de la logique qu'ils suivront la présente convention.
Votre raison pour laquelle il est logique de commencer à 0 est parfaitement bien, mais c'est le but d'un langage de haut niveau comme matlab à occulter des aspects comme ceux-ci que l'utilisateur n'a pas besoin de savoir.
OriginalL'auteur BZ1