Effiziente (Schnellste) Weg, um die Summe der Elemente der matrix in matlab

Lets have matrix A sagen A = magic(100);. Ich habe gesehen 2 Möglichkeiten zur Berechnung der Summe aller Elemente der matrix A.

sumOfA = sum(sum(A));

Oder

sumOfA = sum(A(:));

Ist einer von Ihnen schneller (oder besser üben), dann andere? Wenn ja, welches ist es? Oder sind Sie beide gleich schnell?

  • Jede Methode muss zu Fuß durch jedes element der matrix. Sie sind also genau das gleiche, wenn es um die Komplexität. Ich würde Ihnen empfehlen, machen Sie zwei Skripte mit den verschiedenen Methoden, riesige Matrizen und berechnen Sie deren Ausführungszeit. Einen langen Schuss hier, ich würde sagen das zweite ist besser, da es nicht beinhaltet das memory-alloc-Operationen, aber wie ich schon sagte, es ist eine lange gedreht, und ich kann hier etwas fehlt.
  • Sie konnte mit Hilfe von Matlab-s tic und toc Funktionen führen Sie das experiment.
  • Ich habe einen schnellen test und es gab keinen Unterschied in der Geschwindigkeit. Ein Vorteil der sum(A(:)) ist, dass Sie brauchen nicht zu wissen, wie viele Dimensionen A hat; es funktioniert für eine beliebige Anzahl von dims.
InformationsquelleAutor Rasto | 2012-07-01
Schreibe einen Kommentar