2013-10-03 10 views
9

Nella versione più recente di MATLAB ci sono due nuovi tipi di dati: tabelle e array categoriali.Quali sono le differenze tra tabelle e array categoriali e array di celle e struct?

La tabella è un nuovo tipo di dati adatto per contenere dati e metadati e può essere utilizzato con dati tabellari di tipo misto che vengono spesso memorizzati come colonne in un file di testo o in un foglio di calcolo. Consiste di righe e variabili orientate alla colonna.

Gli array di categorie sono utili per contenere dati categoriali, che hanno valori di un elenco limitato di categorie discrete.

Nelle versioni precedenti avrei gestito questi casi d'uso utilizzando gli array di celle e struct. Quali sono le differenze tra questi e i nuovi tipi di dati?

+0

sono indietro con i tempi ... – Justin

+0

Non molto indietro, è appena uscito. :) – chappjc

risposta

5

Non ho ancora eseguito l'aggiornamento quindi non posso giocare ma basato su this video e this article Posso già vedere alcuni vantaggi. Non stanno necessariamente aggiungendo funzionalità che non si potevano fare prima, ma piuttosto semplicemente prendendone il fastidio. L'utilizzo di su xlsread mi attrae immediatamente. Essere in grado di accedere alle colonne per nome anziché solo per indice è grandioso, lo faccio spesso in altre lingue. In una tabella in cui l'ordine delle colonne non ha molta importanza (a differenza di una matrice) è davvero comodo essere in grado di indirizzare una colonna in base al suo nome invece di dover conoscere l'ordine delle colonne. Inoltre puoi unire la tabella usando la funzione join che non era così facile da fare con gli array di celle prima. Vedo che puoi nominare anche le righe, non ho visto quale vantaggio ti dà e non posso giocare ma so che in alcune lingue (come PANDAS in Python e penso anche in R) le righe di denominazione significano che può lavorare con dati di serie temporali con serie diverse che non sono completamente sovrapposte e non devono preoccuparsi dell'allineamento. Spero che questo avvenga anche in Matlab! Gli array categorici sembrano anche solo un ulteriore livello di comodità, un po 'come lo enum. Non hai mai realmente bisogno di un enum ma rende lo sviluppo ancora più piacevole.

Ad ogni modo sono solo i miei due centesimi, probabilmente non avrò l'opportunità di giocare con loro in qualunque momento presto, ma non vedo l'ora di usarli quando ne ho bisogno.

+0

grazie per la risposta e i collegamenti. Sono stato sorpreso di apprendere che la domanda in sospeso ... –

+1

Allo stesso modo - la domanda è qual è la differenza, che non è davvero una questione di opinione. Mi piacerebbe aver visto quello che gli altri sanno di loro che li hanno effettivamente usati. – Dan

0

Uso il formato tabella per organizzare diversi casi di input/output nei miei dati, in cui il risultato può provenire da tabelle diverse. I principali vantaggi rispetto ai struct o cella array:

  • comode funzioni da tavolo come unire, innerjoin, outer-join
  • l'uso di campi <> programmazione più robusto di array
  • formato dei dati
  • è facile da esportare/importare (ad esempio, delimitato file .txt) <> no fprintf()
  • il file di dati può essere aperto in Excel/Calc (LibreOffice) <> no .mat
Problemi correlati