squeeze.js (1871B)
1 "use strict"; 2 3 Object.defineProperty(exports, "__esModule", { 4 value: true 5 }); 6 exports.createSqueeze = void 0; 7 8 var _object = require("../../utils/object.js"); 9 10 var _array = require("../../utils/array.js"); 11 12 var _factory = require("../../utils/factory.js"); 13 14 var name = 'squeeze'; 15 var dependencies = ['typed', 'matrix']; 16 var createSqueeze = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) { 17 var typed = _ref.typed, 18 matrix = _ref.matrix; 19 20 /** 21 * Squeeze a matrix, remove inner and outer singleton dimensions from a matrix. 22 * 23 * Syntax: 24 * 25 * math.squeeze(x) 26 * 27 * Examples: 28 * 29 * math.squeeze([3]) // returns 3 30 * math.squeeze([[3]]) // returns 3 31 * 32 * const A = math.zeros(3, 1) // returns [[0], [0], [0]] (size 3x1) 33 * math.squeeze(A) // returns [0, 0, 0] (size 3) 34 * 35 * const B = math.zeros(1, 3) // returns [[0, 0, 0]] (size 1x3) 36 * math.squeeze(B) // returns [0, 0, 0] (size 3) 37 * 38 * // only inner and outer dimensions are removed 39 * const C = math.zeros(2, 1, 3) // returns [[[0, 0, 0]], [[0, 0, 0]]] (size 2x1x3) 40 * math.squeeze(C) // returns [[[0, 0, 0]], [[0, 0, 0]]] (size 2x1x3) 41 * 42 * See also: 43 * 44 * subset 45 * 46 * @param {Matrix | Array} x Matrix to be squeezed 47 * @return {Matrix | Array} Squeezed matrix 48 */ 49 return typed(name, { 50 Array: function Array(x) { 51 return (0, _array.squeeze)((0, _object.clone)(x)); 52 }, 53 Matrix: function Matrix(x) { 54 var res = (0, _array.squeeze)(x.toArray()); // FIXME: return the same type of matrix as the input 55 56 return Array.isArray(res) ? matrix(res) : res; 57 }, 58 any: function any(x) { 59 // scalar 60 return (0, _object.clone)(x); 61 } 62 }); 63 }); 64 exports.createSqueeze = createSqueeze;