首页 > 解决方案 > 如何将 matlab 合并到 jupyter notebook 中?

问题描述

我正在尝试集成 MATLAB 和 jupyter notebook,以便我可以在基于 Web 的笔记本和实验室中使用 MATLAB。我正在运行 MATLAB R2020a、python 3.6(来自 conda 4.8.2);计算机的操作系统是 Ubuntu 18.04。我收到一条错误消息,提示未安装 MATLAB 引擎,但据我所知,它已安装。

我已经执行了以下步骤: 1. 我用 python 3.6 创建了一个 conda 环境conda create matlab-conda python=3.6。2. 从那里,我使用 pip 安装 matlab_kernel,输入pip install matlab-kernel. 3. 如果我通过键入并查看列表来检查内核是否已安装jupyter kernelspec list,它会显示: 可用内核:

ir /home/computerone/.local/share/jupyter/kernels/ir

matlab
/home/computerone/miniconda3/envs/matlab-conda/share/jupyter/kernels/matlab

python3
/home/computerone/miniconda3/envs/matlab-conda/share/jupyter/kernels/python3

  1. 为了配置 MATLAB,我找到了 extern/engines/python 文件夹,并从 conda env 中运行了 setup: python setup.py install。这成功运行了。

当我打开 juyter notebook 或 lab 时,MATLAB notebook 选项在那里,我可以选择它,显示一个 notebook;但是,当我打开 MATLABnotebook 并键入命令(例如,2+5)时,会引发以下错误:

[MetaKernelApp] ERROR | Exception in message handler:
Traceback (most recent call last):
  File "/home/computerone/miniconda3/envs/matlab-conda/lib/python3.6/site-packages/ipykernel/kernelbase.py", line 268, in dispatch_shell
    yield gen.maybe_future(handler(stream, idents, msg))
  File "/home/computerone/miniconda3/envs/matlab-conda/lib/python3.6/site-packages/tornado/gen.py", line 735, in run
    value = future.result()
  File "/home/computerone/miniconda3/envs/matlab-conda/lib/python3.6/site-packages/tornado/gen.py", line 209, in wrapper
    yielded = next(result)
  File "/home/computerone/miniconda3/envs/matlab-conda/lib/python3.6/site-packages/ipykernel/kernelbase.py", line 541, in execute_request
    user_expressions, allow_stdin,
  File "/home/computerone/miniconda3/envs/matlab-conda/lib/python3.6/site-packages/metakernel/_metakernel.py", line 395, in do_execute
    retval = self.do_execute_direct(code)
  File "/home/computerone/miniconda3/envs/matlab-conda/lib/python3.6/site-packages/matlab_kernel/kernel.py", line 99, in do_execute_direct
    retval = self._execute_async(code)
  File "/home/computerone/miniconda3/envs/matlab-conda/lib/python3.6/site-packages/matlab_kernel/kernel.py", line 257, in _execute_async
    future = self._matlab.eval(code, **kwargs)
  File "/home/computerone/miniconda3/envs/matlab-conda/lib/python3.6/site-packages/matlab_kernel/kernel.py", line 81, in _matlab
    """)
ImportError: 
        Matlab engine not installed:
        See https://www.mathworks.com/help/matlab/matlab-engine-for-python.htm

标签: pythonmatlabanacondajupyter

解决方案


推荐阅读