Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Ventajas computacionales de matrices dispersas

Administración de memoria

El uso de matrices dispersas para almacenar datos que contengan un gran número de elementos con valores cero puede ahorrar una cantidad significativa de memoria y acelerar el procesamiento de esos datos. es un atributo que se puede asignar a cualquier matriz bidimensional compuesta por o elementos.sparseMATLAB®doublelogical

El atributo permite:sparseMATLAB

  • Almacene solo los elementos distintos de cero de la matriz, junto con sus índices.

  • Reduzca el tiempo de cálculo eliminando operaciones en elementos cero.

Para matrices completas, almacena cada elemento de matriz internamente.MATLAB Los elementos con valores cero requieren la misma cantidad de espacio de almacenamiento que cualquier otro elemento de matriz. Para las matrices dispersas, sin embargo, almacena solo los elementos distintos de cero y sus índices.MATLAB Para matrices grandes con un alto porcentaje de elementos de valor cero, este esquema reduce significativamente la cantidad de memoria necesaria para el almacenamiento de datos.

El comando proporciona información de alto nivel sobre el almacenamiento en matriz, incluido el tamaño y la clase de almacenamiento.whos Por ejemplo, esta lista muestra información sobre las versiones dispersas y completas de la misma matriz.whos

M_full = magic(1100);          % Create 1100-by-1100 matrix. M_full(M_full > 50) = 0;       % Set elements >50 to zero. M_sparse = sparse(M_full);     % Create sparse matrix of same.  whos
  Name             Size                Bytes  Class     Attributes    M_full        1100x1100            9680000  double                 M_sparse      1100x1100               9608  double    sparse  

Tenga en cuenta que el número de bytes utilizados es menor en el caso disperso, porque no se almacenan los elementos de valor cero.

Eficiencia computacional

Las matrices dispersas también tienen ventajas significativas en términos de eficiencia computacional. A diferencia de las operaciones con matrices completas, las operaciones con matrices dispersas no realizan aritmética innecesaria de bajo nivel, como la suma cero (siempre).x+0x Las eficiencias resultantes pueden llevar a mejoras dramáticas en el tiempo de ejecución para los programas que trabajan con grandes cantidades de datos dispersos.

Temas relacionados