Problema
Hai dati in una matrice e hai bisogno di una tabella dati o viceversa
Data table or matrix?Data table or matrix?Tabella dati o matrice?
Soluzione
C'è una funzione, AsTable(), che crea una nuova tabella di dati da una matrice, e un metodo di tabella di dati, GetAsMatrix(), che crea una matrice dalle colonne numeriche in una tabella.
C'è anche un modo per indicizzare le tabelle di dati direttamente con sottoscrizione della tabella di dati .
// make a matrix of 5 rows, 3 cols, random values
mat = J( 5, 3, Random Normal() );
// make a data table from a matrix
dt = As Table( mat );
// make a matrix from a data table
mat2 = dt << GetAsMatrix;
// comparing two matrices returns a matrix of answers
// and the All function returns true if all of the
// matrix values are true
Show( All( mat == mat2 ) );
// use data table subscripting to get a matrix of all
// rows and all columns from the table; the zero subscript
// is used with matrix and data table to mean "all
// rows or all columns"
mat3 = dt[0, 0];
Show( All( mat == mat3 ) );
Grazie!
Abbonamento tabella dati descrive l'indicizzazione di una tabella di dati come una matrice e Cos'è la matrice JSL? mostra come utilizzare l'indice di matrice. Quindi, con una tabella di dati (o una matrice), invece di copiare i dati dalla tabella per creare una matrice, puoi ottenere una riga da una delle due in questo modo:
// if dt is a table...
rowVector = dt[ rowNumber, 0 ]; // all columns
rowVector = dt[ rowNumber, { age, height, weight } ]; // selected columns
// if m is a matrix
rowVector = m[ row, 0 ];
rowVector = m[ row, 5::9 ]; // selected items from row
// and both dimensions at once
patch = m[ 3::5, 7::11 ];Il pedice zero significa "tutta questa dimensione". L'indicizzazione della matrice inizia da uno.
Grazie, molto utile e qualsiasi modo conveniente per ottenere un vettore di riga da una tabella di dati?
Grazie!