문제
매트릭스에 데이터가 있고 데이터 테이블이 필요하거나 그 반대의 경우
Data table or matrix?Data table or matrix?데이터 테이블 또는 매트릭스?
해결책
행렬에서 새로운 데이터 테이블을 만드는 AsTable() 함수와 테이블의 숫자 열에서 행렬을 만드는 데이터 테이블 메서드 GetAsMatrix()가 있습니다.
다음을 사용하여 데이터 테이블을 직접 인덱싱하는 방법도 있습니다. 데이터 테이블 첨자 .
// 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 ) );
감사해요!
데이터 테이블 첨자 데이터 테이블을 행렬로 인덱싱하는 방법을 설명하고 JSL 매트릭스란 무엇입니까? 행렬 첨자를 사용하는 방법을 보여줍니다. 따라서 데이터 테이블(또는 행렬)을 사용하면 행렬을 만들기 위해 테이블에서 데이터를 복사하는 대신 다음과 같이 둘 중 하나에서 행을 가져올 수 있습니다.
// 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 ];0 아래 첨자는 "이 차원의 모든 것"을 의미합니다. 행렬 인덱싱은 1부터 시작합니다.
감사합니다. 매우 유용하며 데이터 테이블에서 행 벡터를 가져오는 편리한 방법이 있습니까?
감사해요!