首页 > 解决方案 > 在 Observable 笔记本中,无法使用 npm 库中的函数,可能是因为无法从库的依赖项中导入函数

问题描述

我想在 Observable 笔记本中重现这个 npm 库中的示例我在一个单元格和一个块中运行以下命令:

fit_data = {
  let data = {
    x: [0, 1, 2],
    y: [1, 1, 1]
  }
  return data
}
{
    const LM = require('ml-levenberg-marquardt@2.1.1/lib/index.js').catch(() => window["_interopDefault"]);
    function sinFunction([a, b]) {
    return (t) => a * Math.sin(b * t);
  }

  const options = {
    damping: 1.5,
    gradientDifference: 10e-2,
    maxIterations: 100,
    errorTolerance: 10e-3
  };

  let fittedParams = levenbergMarquardt(fit_data, sinFunction, options);
  return fittedParams
}

我收到错误消息TypeError: isArray is not a function,我怀疑这个函数无法从库的依赖项中导入。

我正在按照本指南导入库。

标签: javascriptrequirejslevenberg-marquardtobservablehq

解决方案


一切看起来都很好,我猜你拼错了导入方法的名称。另一个建议是闯入细胞。这是对我有用的细胞

这是你如何导入它

LM = await require('ml-levenberg-marquardt@2.1.1/lib/index.js').catch(
  () => window["_interopDefault"]
)

这是你如何使用它

{
  const options = {
    damping: 1.5,
    gradientDifference: 10e-2,
    maxIterations: 100,
    errorTolerance: 10e-3
  };

  let fittedParams = LM(fit_data, sinFunction, options);
  return fittedParams;
}
fit_data = {
  let data = {
    x: [0, 1, 2],
    y: [1, 1, 1]
  };
  return data;
}
function sinFunction([a, b]) {
  return t => a * Math.sin(b * t);
}

推荐阅读