Wie bewahren Sie diese Struktur (Liste von Listen von Integer-zahlen) in Matlab?

Brauche ich zum speichern einer Liste von Listen von Integer-zahlen. Zum Beispiel X[1] sollte in der Lage sein zu enthalten [1 3 5] während X[2] enthalten könnte [1 2]. Was ist die beste Lösung? Ein cell-array?


Back story:

Für ein Projekt, ich pre-Berechnung der Schnittpunkte zwischen N Zeilen und M Würfel. Diese werden wieder in zwei Arten: eine Linie index, ich möchte eine Liste der cubes, die es durchläuft, und da ein cube-index, ich möchte eine Liste von Linien, die Sie passieren.

Typische Werte sind N=2^24 und M=2^18, was bedeutet, dass ein Kreuzungspunkt-matrix (NxM) ist aus der Frage. Glücklicherweise ist die Durchschnittliche Linie überschreitet nur durch M^(1/3)=2^6 Würfel. Derzeit bin ich der Speicherung der Struktur als eine NxM^(1/3) - matrix, so dass X(n,:) ist ein Vektor, der Würfel, die der N-TEN Zeile durchläuft (mit Nullen aufgefüllt).

Dies funktioniert gut für das abrufen von cubes aus einer Liste einen index, aber es stellt sich heraus, dass der Engpass von meinem code ist das abrufen von Zeilen in einem gegebenen Würfel den index. (Ich mache es mit find(X==m) wo m ist die cube-index.) Ich kann nicht das Gegenteil matrix, als die Anzahl der Zeilen, die durch einen einzelnen cube kann sehr hoch sein, obwohl es im Durchschnitt niedrig.

InformationsquelleAutor Andreas | 2012-12-07
Schreibe einen Kommentar