¿Cómo almacenar esta estructura (lista de listas de enteros) en Matlab?

Necesito almacenar una lista de listas de enteros. Por ejemplo,X[1] debe ser capaz de contener[1 3 5] mientrasX[2] podría contener[1 2]. ¿Cuál es la mejor solución? Una matriz de celdas?

La historia de fondo:

Para un proyecto, pre-calculo las intersecciones entre N líneas y M cubos. Estos se recuperan de dos maneras: dado un índice de línea, quiero una lista de cubos por los que pasa, y dado un índice de cubo, quiero una lista de líneas que lo atraviesan.

Los valores típicos son N = 2 ^ 24 y M = 2 ^ 18, lo que significa que una matriz de intersección (NxM) está fuera de la cuestión. Afortunadamente, la línea promedio solo pasa por M ^ (1/3) = 2 ^ 6 cubos. Actualmente, estoy almacenando la estructura como una matriz NxM ^ (1/3), de modo queX(n,:) es un vector de cubos por el que pasa la línea nth (rellenado con ceros).

Esto funciona bien para recuperar cubos dado un índice de lista, pero resulta que el cuello de botella de mi código es la recuperación de líneas dado un índice de cubo. (Lo hago confind(X==m) donde m es el índice del cubo.) No puedo crear la matriz opuesta, ya que el número de líneas que pasan por un solo cubo puede ser muy alto, aunque en promedio sea bajo.

Respuestas a la pregunta(1)

Su respuesta a la pregunta