row.js (1506B)
1 import { factory } from '../../utils/factory.js'; 2 import { clone } from '../../utils/object.js'; 3 import { validateIndex } from '../../utils/array.js'; 4 var name = 'row'; 5 var dependencies = ['typed', 'Index', 'matrix', 'range']; 6 export var createRow = /* #__PURE__ */factory(name, dependencies, _ref => { 7 var { 8 typed, 9 Index, 10 matrix, 11 range 12 } = _ref; 13 14 /** 15 * Return a row from a Matrix. 16 * 17 * Syntax: 18 * 19 * math.row(value, index) 20 * 21 * Example: 22 * 23 * // get a row 24 * const d = [[1, 2], [3, 4]] 25 * math.row(d, 1) // returns [[3, 4]] 26 * 27 * See also: 28 * 29 * column 30 * 31 * @param {Array | Matrix } value An array or matrix 32 * @param {number} row The index of the row 33 * @return {Array | Matrix} The retrieved row 34 */ 35 return typed(name, { 36 'Matrix, number': _row, 37 'Array, number': function ArrayNumber(value, row) { 38 return _row(matrix(clone(value)), row).valueOf(); 39 } 40 }); 41 /** 42 * Retrieve a row of a matrix 43 * @param {Matrix } value A matrix 44 * @param {number} row The index of the row 45 * @return {Matrix} The retrieved row 46 */ 47 48 function _row(value, row) { 49 // check dimensions 50 if (value.size().length !== 2) { 51 throw new Error('Only two dimensional matrix is supported'); 52 } 53 54 validateIndex(row, value.size()[0]); 55 var columnRange = range(0, value.size()[1]); 56 var index = new Index(row, columnRange); 57 return value.subset(index); 58 } 59 });