Jak przechowywać tę strukturę (listę list liczb całkowitych) w Matlab?

Muszę zapisać listę list liczb całkowitych. Na przykład,X[1] powinien być w stanie zawierać[1 3 5] podczasX[2] może zawierać[1 2]. Jakie jest najlepsze rozwiązanie? Macierz komórek?

Historia z tyłu:

W przypadku projektu wstępnie obliczam przecięcia między N liniami i M kostkami. Są one pobierane na dwa sposoby: przy danym indeksie liniowym, chcę listę kostek, przez które przechodzi, i otrzymując indeks kostki, chcę listę linii, które przez nią przechodzą.

Typowe wartości to N = 2 ^ 24 i M = 2 ^ 18, co oznacza, że ​​macierz przecięcia (NxM) jest wykluczona. Na szczęście średnia linia przechodzi tylko przez M ^ (1/3) = 2 ^ 6 kostek. Obecnie przechowuję strukturę jako macierz NxM ^ (1/3), więcX(n,:) to wektor kostek, przez które przechodzi n-ty wiersz (wypełniony zerami).

Działa to dobrze w przypadku pobierania kostek z indeksem listy, ale okazuje się, że wąskim gardłem mojego kodu jest pobieranie linii o indeksie kostki. (Robię to zfind(X==m) gdzie m jest indeksem kostki.) Nie mogę utworzyć przeciwnej macierzy, ponieważ liczba linii przechodzących przez pojedynczą kostkę może być bardzo wysoka, mimo że średnio jest niska.

questionAnswers(1)

yourAnswerToTheQuestion