跳转到主要内容

一个MATLAB的Juyter内核。

项目描述

Python35 MATLAB2016b PyPI

此内核需要Python 3.5+的Jupyter,以及Python的MATLAB引擎 R2016b+(此版本提供了一个更好的完成API),需要先安装。请注意,此外,引擎不支持的Python版本同样不支持此内核。

安装

如往常一样,使用pip安装

$ pip install imatlab  # from PyPI
$ pip install git+https://github.com/imatlab/imatlab  # from Github

然后,使用以下命令注册kernelspec

$ python -mimatlab install

在没有管理员权限的情况下,应将这些命令的所有命令中添加--user标志。

使用

# Notebook (in the notebook interface, select Matlab from the 'New' menu):
$ jupyter notebook
# or QtConsole:
$ jupyter qtconsole --kernel imatlab
# or terminal:
$ jupyter console --kernel imatlab

内联图形

MATLAB图形可以在原生的MATLAB窗口中显示(默认),或者(当使用笔记本时)作为内联图像。内核可以原生地显示静态图像,或者使用Plotly生成交互式的JavaScript图形。

通过调用imatlab_export_fig函数设置导出器,该函数在内核运行时自动添加到MATLAB路径。以下是一些可能的设置

imatlab_export_fig('')  % Native windows.
imatlab_export_fig('fig2plotly')  % Plotly figures.
imatlab_export_fig('print-png')  % Static png figures.
imatlab_export_fig('print-svg')  % Static svg figures.
imatlab_export_fig('print-jpeg')  % Static jpeg figures.

必须在第一个图形显示之前发出此调用。请注意,非原生导出器将调用set(0, 'defaultfigurevisible', 'off')以防止窗口短暂显示,而使用原生窗口将默认图形可见性恢复为'on'

Plotly导出器

要在笔记本中使用Plotly内联图形,必须安装Plotly MATLAB API (>=2.2.7),如下所示

  1. 克隆 plotly/MATLAB-Online 或将其作为 zip 文件 下载。

  2. 使用 addpath(genpath(<Plotly MATLAB API path>)); 递归地将提取的结果文件夹添加到 MATLAB 搜索路径中。可以将这样的调用放入您的 startup.m 文件中,或者调用 savepath; 来保存路径。

  3. 在 MATLAB 中,复制所需的 JavaScript 文件并初始化凭据

    getplotlyoffline('https://cdn.plot.ly/plotly-latest.min.js');
    try, signin; catch, saveplotlycredentials('', ''); end;

    (如果您的 MATLAB 版本使用旧的 OpenSSL,您可能需要使用 HTTP 而不是 HTTPS。)

在每个笔记本的开头,您可以调用 imatlab_export_fig('fig2plotly') 以自动使用 Plotly 内联图形(不需要调用 Plotly API;特别是,忽略 getplotlyoffline 的输出)。

静态导出器

静态导出器(png、svg 和 jpeg)不需要额外的依赖。

导出图形的默认大小以及是否在导出前显示图形,应使用标准图形属性设置(例如 set(0, 'defaultpaperposition', [left, bottom, width, height]); 等)。

自定义导出器

为了进一步定制,您可以重写 imatlab_export_fig 函数(默认版本由 imatlab 提供,并添加到 MATLAB 路径)。此函数在每个笔记本单元格执行后无参数调用,同时当前目录临时切换到临时文件夹;此函数应返回一个包含 .html.png.jpg/.jpeg 扩展名的文件名单元格数组。将创建相应文件,并将这些文件加载到笔记本中。

环境变量

IMATLAB_CONNECT

如果此环境变量设置为有效的 MATLAB 标识符,内核将尝试连接到具有该名称的共享引擎。如果设置为另一个非空值,它将连接到任何现有的共享引擎。

IMATLAB_CD

如果此环境变量已设置,则将工作目录更改为与内核的工作目录匹配。

IMATLAB_CONNECT 需要在 MATLAB 外部设置(因为它在连接到引擎之前进行检查)。其他环境变量可以在 MATLAB 外部设置(在启动内核之前)或在 MATLAB 内部设置(使用 setenv)。

异步输出

1, pause(1), 2 这样的结构,在 Linux 和 OSX 上将以一秒间隔输出 12,但在 Windows 上将一起在一秒后输出。欢迎提交改进 Windows 支持的 PR。

使用 timer 对象的异步输出似乎完全不受 MATLAB 引擎对 Python 的支持。

MATLAB调试器

在每次执行之前清除 MATLAB 调试器(dbclear all),因为引擎 API 不支持交互式输入。

与Calysto MATLAB内核的差异

  • 通过依赖 MATLAB 2016b 中可用的新 API,完成系统更加健壮。

  • 历史记录从 MATLAB 自身的 History.xml 中读取和写入,因此与标准 MATLAB 会话共享。请注意,如果文件不存在(例如,如果设置了“不保存历史文件”选项,或在仅控制台设置中),则历史记录不会重新加载到后续会话中。(欢迎提交加载 history.m 的 PR;它需要正确解析该文件中的多行输入。)

  • 在 Linux 和 OSX 上支持同步输出(见上文)。

  • 没有魔术系统,因为MATLAB已经提供了许多用于此目的的函数(如 cdedit 等)。

  • 内联图形可以基于 plotly,因此是交互式的。

测试

在安装内核和 jupyter_kernel_test 之后,使用 python -munittestpytest 运行测试。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分发

本版本没有可用的源代码分发文件。请参阅 生成分发存档的教程

构建分发

imatlab-0.4-py3-none-any.whl (14.0 kB 查看哈希值)

上传时间 Python 3

由以下支持