code: function recomb (inputMatrix) {
    if (!Array.isArray(inputMatrix) || inputMatrix.length !== 3 ||
        inputMatrix[0].length !== 3 ||
        inputMatrix[1].length !== 3 ||
        inputMatrix[2].length !== 3
    ) {
      // must pass in a kernel
      throw new Error('Invalid Recomb Matrix');
    }
    this.options.recombMatrix = [
      inputMatrix[0][0], inputMatrix[0][1], inputMatrix[0][2],
      inputMatrix[1][0], inputMatrix[1][1], inputMatrix[1][2],
      inputMatrix[2][0], inputMatrix[2][1], inputMatrix[2][2]
    ].map(Number);
    return this;
  }
docs: Recomb the image with the specified matrix.
  
  @example
  sharp(input)
  .recomb([
  [0.3588, 0.7044, 0.1368],
  [0.2990, 0.5870, 0.1140],
  [0.2392, 0.4696, 0.0912],
  ])
  .raw()
  .toBuffer(function(err, data, info) {
  // data contains the raw pixel data after applying the recomb
  // With this example input, a sepia filter has been applied
  });
  
  @param {Array<Array<Number>>} 3x3 Recombination matrix
  @returns {Sharp}
  @throws {Error} Invalid parameters