Warum matlab 1-basierte Indizierung

Ich programmiere in Java und Python früher, aber vor kurzem begonnen haben, mit Hilfe von MATLAB für viele Sachen (speziell computer-vision-algorithmen).

Aber MATLAB hat die Indizierung von arrays beginnend ab 1 anstatt 0, das ist die norm in fast allen Programmiersprachen, die ich bisher begegnet sind.

Den Grund 0-basierte Indizierung machte Sinn für mich war, wie diese:
In jedem Prozessor, die ich gesehen habe, die Adresse index beginnt mit 0 x 00000000 sagen in einem 8-bit-Prozessor, und Wenn ich wollen speichern Sie 5 Telefonnummern, die Sie gespeichert in der Adresse 0x00000000 zu 0x00000004 . Daher ist es sinnvoll, die Indizierung von 0 in Programmiersprachen.

Während ich war auf der Suche nach dieser Frage habe ich gefunden Liste 1-indiziert Programmiersprachen? und http://en.wikipedia.org/wiki/Comparison_of_programming_languages_(array), um nützlich zu sein.

Für mich ist es nicht eine sehr bequeme Schreibweise, vielleicht auch, weil ich verwendet, um code in anderen Sprachen vor. Aber ich verstehe immer noch nicht, warum MATLAB (und auch Julia jetzt) hat eine 1-basierte Indizierung von Arrays und welche Vorteile es bietet. Kann jemand Liste die Vorteile?

  • MAT(rix) LAB(Oratorium), folgt in der Regel Mathematik/lineare algebra Konventionen, nicht informatik Konventionen. Mit Matrizen das erste element, D. H. die in der oberen linken Ecke ist die (1,1) - element, nicht den (0,0) - element, also 1-basierte Indizierung, nicht 0-basierte Indizierung.
  • Ich glaube, das hat zu tun mit MATLAB ursprünglichen Grundlagen werden in Fortran geschrieben, die hat auch 1-basierte Indizierung. Dieses Problem wurde zum Tod kämpfte im Usenet, also Googeln sollte es offenbaren mehr details. Ich bin jedenfalls Abstimmung zu schließen, die Meinung basiert, da die wirkliche Antwort liegt in Cleve Moler Kopf. Selbst wenn jemand waren zu produzieren, die einen autorisierenden Verweis, warum dies der Fall ist, die Frage ist immer noch off-topic SO. In der Zwischenzeit, wenn Sie verwenden, MATLAB, sich daran zu gewöhnen und mit Ihr umzugehen; es ist, was der rest von uns getan haben.
  • In einer Liste von zahlen, sagen wir 45, 17, 94, 37 ich glaube, die erste Nummer in der Liste als 45. Reden über die nullte Zahl macht wenig Sinn für mich konzeptionell. Allein aus diesem Grund mag ich 1-basierte Indizierung. Als Phil sagte, dies spiegelt mathematische notation, die die primäre (?) Verwendungszweck für Matlab.
InformationsquelleAutor Anoop | 2014-03-20
Schreibe einen Kommentar