Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Jupyter笔记本查看从Python运行的MATLAB代码的输出_Python_Python 3.x_Matlab_Jupyter Notebook_Jupyter - Fatal编程技术网

使用Jupyter笔记本查看从Python运行的MATLAB代码的输出

使用Jupyter笔记本查看从Python运行的MATLAB代码的输出,python,python-3.x,matlab,jupyter-notebook,jupyter,Python,Python 3.x,Matlab,Jupyter Notebook,Jupyter,我正在尝试从python运行MATLAB函数。我正在跟踪 . 在该教程中,他们指定可以在python中查看MATLAB脚本的输出。他们给出的示例包含以下代码 % This code is in a MATLAB script called triarea.m b = 5; h = 3; a = 0.5*(b.* h) % Notice that there is no semicolon to suppress output. python部分: import matlab.engine en

我正在尝试从python运行MATLAB函数。我正在跟踪 . 在该教程中,他们指定可以在python中查看MATLAB脚本的输出。他们给出的示例包含以下代码

% This code is in a MATLAB script called triarea.m
b = 5;
h = 3;
a = 0.5*(b.* h) % Notice that there is no semicolon to suppress output.
python部分:

import matlab.engine
eng = matlab.engine.start_matlab()
eng.triarea(nargout=0)
python脚本应该打印出来

a =

    7.5000
当它作为一个普通的python脚本运行时(例如,使用PyCharm),这非常有效。但是,当使用Jupyter笔记本运行此python代码时,不会打印任何内容

当使用Jupyter笔记本运行python代码时,如何获得正确的输出

到目前为止,我已经尝试过指定标准输出(如中所建议)。也就是说,我的python代码现在可以读取

import io
out = io.StringIO()
eng.triareaf(nargout=0, stdout=out)

但是,我仍然无法获得正确的输出。我使用的是Python 3.5、MATLAB R2017a、Jupyter版本4.4.0和Windows 10。

如果您仍然打开终端(即Jupyter服务器正在运行的终端),您将在那里找到您期望的输出


顺便说一句,这不是一个解决方案,只是一个解决办法。。。仍在寻找使终端输出直接显示在笔记本中的方法。

不知道为什么会发生这种情况。也许他们就是这样做到的。顺便说一句,MATLAB文档页面中的第二个示例做了您想做的事情,但并不是我想做的。第二个示例要求Matlab函数返回我要打印的值。这也意味着我看不到Matlab脚本的输出,因为脚本没有返回值。