flatten.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.createFlatten = void 0;
  6. var _array = require("../../utils/array.js");
  7. var _factory = require("../../utils/factory.js");
  8. var name = 'flatten';
  9. var dependencies = ['typed', 'matrix'];
  10. var createFlatten = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
  11. var typed = _ref.typed,
  12. matrix = _ref.matrix;
  13. /**
  14. * Flatten a multidimensional matrix into a single dimensional matrix.
  15. * A new matrix is returned, the original matrix is left untouched.
  16. *
  17. * Syntax:
  18. *
  19. * math.flatten(x)
  20. *
  21. * Examples:
  22. *
  23. * math.flatten([[1,2], [3,4]]) // returns [1, 2, 3, 4]
  24. *
  25. * See also:
  26. *
  27. * concat, resize, size, squeeze
  28. *
  29. * @param {Matrix | Array} x Matrix to be flattened
  30. * @return {Matrix | Array} Returns the flattened matrix
  31. */
  32. return typed(name, {
  33. Array: function Array(x) {
  34. return (0, _array.flatten)(x);
  35. },
  36. Matrix: function Matrix(x) {
  37. var flat = (0, _array.flatten)(x.toArray());
  38. // TODO: return the same matrix type as x (Dense or Sparse Matrix)
  39. return matrix(flat);
  40. }
  41. });
  42. });
  43. exports.createFlatten = createFlatten;