Visualizzazione dell'array N2-D? [chiuso]

0

Ho una matrice di dimensione 5. Ma non riesco a capire come visualizzare quell'array?

int[][][][][] array = new int[4][4][4][6][2].

Esiste un buon modo per visualizzare gli array con un numero di dimensioni pari o superiore a 3?

    
posta relstudiosnx 23.12.2012 - 06:43
fonte

6 risposte

2

Un array 2D di cubi 3d potrebbe visualizzarlo, sebbene non ci sia un buon modo generale per mostrare tutti i dati in una volta in modo significativo.

    
risposta data 23.12.2012 - 08:36
fonte
2

Non penso che abbia senso visualizzare la matrice in ogni sorta di vero senso "spaziale". Alla fine, è tutto mappato su indirizzi di memoria "piatti".

Se davvero dovessi farlo - forse qualcosa di simile?

( link )

Tuttavia, eviterei di provare a considerarlo come qualcosa di fisico. Perché ... beh, non lo è.

Se la pensi come una matrice di matrici (... di matrici ...) puoi descrivere qualsiasi array nd.

Un array bidimensionale è solo un array in cui ogni elemento rappresenta il proprio array.
Una matrice tridimensionale è solo una matrice in cui ogni elemento rappresenta una matrice in cui ogni elemento rappresenta una matrice. ecc ... ecc ...

    
risposta data 23.12.2012 - 11:09
fonte
1

"Visualizzare" oltre le 3 dimensioni è molto difficile, se non impossibile, da fare spazialmente (anche se ho amici che giurano che possono fare 4). Ma se vuoi avere una buona idea di come pensare che una matrice 5d o anche una n-d rappresenti i dati, pensa a un albero di sorgenti html. Hai:

top layer[0]
    stuff in the second layer[0][0]
        stuff in the third layer[0][0][0]
             you get the picture...
        stuff in the third layer[0][0][1]
    stuff in the second layer[0][1]
top layer[1]
    more stuff...
    
risposta data 23.12.2012 - 10:18
fonte
0

Pensa a ciascun livello di accesso alla matrice multi-D come a un indirizzo con un significato che porta a qualcosa di specifico.

x[0][1][7];

Questo potrebbe rappresentare qualsiasi cosa nelle coordinate spaziali x-0, y-1, z-7.

Ma nessuno ha detto che doveva essere spaziale. Potrebbe anche essere ciò che ottieni quando selezioni la scelta 0 nel primo menu, 1 nel secondo menu e 7 nel successivo.

Gli array Multi-D alla fine si limitano semplicemente a utilizzare gli array per creare associazioni numeriche concatenate a valori specifici. Alla fine è sempre solo l'ultimo array della catena che contiene effettivamente valori piuttosto che array. Gli indie possono avere qualsiasi significato che vogliamo dargli.

    
risposta data 23.12.2012 - 09:33
fonte
0

Se cerchi un modo grafico per rappresentarlo in uno spazio 3D, quello che @whatsisname ha detto è la soluzione. O viceversa: un cubo in cui ogni elemento è una matrice. Dipende da ciò che i tuoi dati rappresentano.

Se vuoi solo controllare i dati, un albero a 5 livelli espandibile dovrebbe andare bene.

    
risposta data 23.12.2012 - 10:05
fonte
0

Questo dipende molto dal contenuto delle celle. Ma se vuoi veramente visualizzare il contenuto, non hai bisogno di vedere subito array 5D di valori di alta precisione.

Definisci pochi (2-5) intervalli con efficienza diversa da dove potrebbero appartenere valori. E crea 2 delle tue dimensioni come xey, e altre tre - interpretali come colori - R, G, B. E in ogni punto (x, y, r, g, b) puoi avere un valore dell'intervallo. Certo, un osservatore ha bisogno di tempo per capire l'immagine, ma ne avrebbe bisogno per ogni tipo di immagine 5D.

    
risposta data 23.12.2012 - 10:56
fonte

Leggi altre domande sui tag