È possibile creare una matrice che è effettivamente una matrice di colonne e righe una matrice.
Quando dichiariamo un array, fondamentalmente dichiariamo un array con una riga e per quanto siano larghe molte colonne,
lo fai.
Quindi diciamo che ho bisogno di un array con tre diversi lotti di quattro numeri diversi.
Sarebbe una matrice di tre righe e quattro colonne scritte che notano un foglio di calcolo che possiamo immaginare
e capire che sarebbe simile a questo.
Posso creare questo batch con una dichiarazione come questa.
Se ti aiuta a visualizzarlo.
Questo è anche un modo valido di scrivere lo
stesso codice, quindi nel mio formato di foglio di calcolo ho incluso l'indice di array di ciascun elemento.
Ricorda solo che sono indicizzati
0, quindi ho dichiarato tre righe e quattro colonne.
Ho tre gruppi ciascuno contenente quattro numeri in modo da accedere al terzo elemento nel secondo gruppo
altrimenti noto come terza colonna nella seconda riga che potrei bloccare e caricare in una variabile come questa.
Ricorda 0 indicizzato per noi per dare l'offset di riga.
Quindi l'offset della colonna.
Quindi, dopo questa istruzione, il numero aggiuntivo sarebbe uguale a 0 quando lo recuperava dall'array.
Quindi il compilatore semplicemente metterà da parte 12 posizioni di memoria fondamentalmente imposterà tre diverse matrici
le righe ognuna delle quali ha quattro elementi le colonne ogni riga ha il suo indirizzo iniziale che il
programma recupera e quindi aggiunge l'indice per compensare l'originale indirizzo di memoria per accedere al numero nella
memoria della colonna.
Speriamo che abbia senso.
Ora le matrici sono incredibilmente utili ma potresti chiederti dove mai le useresti.
Bene, guardiamo al futuro per semplificare un argomento davvero complesso.
Copriremo in corso cinque robot autonomi.
Qui è dove cerchiamo di dare ai nostri robot capacità decisionali per
cose come la navigazione d'altura o l'esplorazione delle caverne ecc. Una volta che tali metodi di navigazione sono chiamati localizzazione e mappatura simultanea di Slam.
Usiamo una versione molto semplice di slam e archiviamo i dati in un array in modo da poter capire come
funziona un array in modo pratico.
Supponiamo di avere il tuo robot mobile con gli occhi finti con un sensore a ultrasuoni montato su un motore
servale in modo che possano scansionare completamente 180 gradi da sinistra a destra.
Misurare la distanza da muri e ostacoli e costruire una mappa mentre va così da dove inizia.
Indicheremo tale posizione come zero sull'asse xe zero sull'asse y e la nostra mappa è una griglia di vita
reale in centimetri.
Ora ho l'intera immagine qui sul suo lato in modo da poter vedere di più su schermi ampi, quindi
x negativo sta salendo X positivo sta scendendo e y positivo sta andando dritto dal robot che è a destra
in questa immagine.
Il robot costruirà quella che chiamiamo nuvola di punti misurando le distanze dagli ostacoli circostanti.
Puoi vedere la stanza in cui il robot è nel suo contorno è in grigio.
Ora il robot non sa nulla del suo ambiente.
È appena stato lasciato cadere in un punto casuale e ora naviga simultaneamente nella stanza e la mappa
in modo da scansionare la stanza triangolando i punti intorno ad essa dove ottiene
un riflesso dal sensore ultrasonico.
Ognuna di queste coordinate è memorizzata nel nostro array di mappe principali come semplici numeri di X
e Y centimetri rispetto al nostro punto iniziale iniziale di 0 0.
Ora, quando il robot avanza di 20 cm, può ora eseguire alcune misurazioni e aggiungere alcuni punti alla nuvola esattamente come
ha fatto prima che il robot si muovesse dritto e misurasse il suo movimento in modo
da sapere dove si trova.
Sa che è ancora a 0 centimetri sull'asse x ma ora più 20 centimetri sull'asse y.
Quindi possiamo triangolare nuovamente tutti questi punti rispetto alla sua posizione attuale e aggiungere un intero mucchio
di nuovi punti alla mappa che colpisce i negozi nell'array.
Quindi costruisce questo array man mano che procede evitando gli ostacoli e mappando dove si trovano tutti gli ostacoli
mentre tenta di tornare a casa a 0 0 sulla mappa.
Può cercare tutti questi punti misurandoli tutti attorno e facendo riferimento incrociato ai punti
memorizzati nell'array.
Può sia localizzare che verificare la sua posizione corrente sulla mappa e calcolare le mosse
necessarie per tornare alla posizione iniziale.
Ricorda che i microprocessori trattano solo numeri, quindi la mappa è semplicemente un array multidimensionale.
Entrambi possiamo scrivere tutti quei numeri e leggerli semplicemente La navigazione degli slave di ricerca è più complessa di così,
ma questo semplifica tutto e si spera di vedere un uso immediato per gli array.