row.js 1.8 KB

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