Dynaaminen matriisi on tietokoneohjelmoinnissa käytetty tietorakenne, joka sisältää useita laskentaobjekteja yhtenä ryhmänä ja jonka kokoa voidaan halutessaan mukauttaa vaihtelevan määrän kohteita varten. Ryhmä on tallennettu yhteen viereiseen muistilohkoon, joten elementtien käyttö on tehokasta ja nopeaa. Dynaamisia matriiseja kutsutaan myös vektoreiksi tai luetteloiksi riippuen tietokoneen kielestä, jolla niitä käytetään. Näistä nimistä huolimatta mikään tietty luettelo tai vektori ei välttämättä ole dynaaminen taulukko, koska luettelot ja vektorit voidaan toteuttaa eri tavoin kuin taulukot ja toisistaan.
C ++ sisältää yhden dynaamisen matriisiluokan, jota kutsutaan vektoriksi, joka sijaitsee luokkaryhmässä, jota kutsutaan vakiomallikirjastoksi. Ryhmää, joka tukee tätä luokkaa, voidaan käyttää iteraattoreilla tai indekseillä. Sen kyky muuttaa kokoa tarpeen mukaan on suuri etu, mutta se voi houkutella ohjelmoijat väärään turvallisuuden tunteeseen, koska se ei ole niin vankka kuin miltä se näyttää. Vektoria tukeva dynaaminen matriisi ei voi varmistaa, että käyttöpyynnöt ovat kelvollisia. Kuten staattisilla matriiseilla, myös dynaamisilla matriiseilla voi olla rajojen tarkistusta ja muistin vioittumisongelmia, jos ohjelma yrittää käyttää muistia, jota ei ole varattu heille.
Java sisältää kolme erillistä dynaamisten matriisiluokkaa: Vector, ArrayList ja CopyOnWriteArrayList. Taulukon elementteihin pääsee vain indekseillä, eikä yrittäminen päästä indeksin ulkopuolelle yleensä ei aiheuta muistin vioittumisongelmia. Java Vector -luokka vastaa suunnilleen C ++ -vektoriluokkaa, eikä sitä synkronoida mahdollistamaan useiden säikeiden käyttö. Sitä vastoin ArrayList ja CopyOnWriteArrayList ovat langankestäviä. Näistä kolmesta CopyOnWriteArrayList on työvoimavaltaisin luokka, koska se luo uudelleen dynaamisen taulukon joka kerta, kun taulukkoon kirjoitetaan uusi arvo.
Dynaamiset taulukot toteutetaan oleellisesti samalla tavalla tietokoneen kielestä riippumatta, mutta tietystä kielestä riippuen sen päälle voidaan rakentaa muita ominaisuuksia. Kuten staattiset taulukot, myös dynaamiset taulukot eivät rajoita niiden sisälle tallennettavien objektien tyyppiä, kunhan ne ovat kaikki samantyyppisiä objekteja. Ohjelmoijan ei tarvitse koskaan käyttää dynaamista taulukkoa suoraan; se voidaan aina tehdä luokan kautta, joka pakkaa taulukon helppokäyttöiseksi. Näiden matriisien asianmukainen käyttö voi auttaa ohjelmoijaa, jolla on tietojen järjestäminen sisäkoodissa, ja myös luoda ymmärrettävää koodia, joka helpottaa ylläpitoa.