nodejs调用matlab的.m文件

1、问题的提出:

在一些web服务中,后台采用nodejs轻量化服务器接口,而matlab的.m文件编写了算法模块,两者调用时,官方没有提供相应的文档(当然也可能我没找到)。因此,本文提出了matlab的.m文件-python-nodejs的解决方案。

2、python调用matlab文件

不同matlab版本支持不同python版本。本机采用matlab 2017b+python 3.5.6版本

①、(如果未安装python,请跳过此步骤)通过conda命令检测python

conda info --envs

我这个版本是3.9的,因此需要创建虚拟环境,安装3.5版本的python

conda create -n py3 python=3.5.6
:: 再次输入环境查询命令
conda info --envs

进入这个文件后,输入命令,即可激活环境

activate py3

进入matlab 2017b的  “..\extern\engines\python”环境,输入命令

Python setup.py install

 出现上图就是安装好了,然后将目录下新出现的文件夹“..\build\lib\matlab”移动到你虚拟环境下的“Lib\site-packages”,正常安装后,“Lib\site-packages”目录下会直接出现“matlab”文件夹

②、pycharm 中新建python项目,并建立test.py文件,将matlab的.m文件拖入到同一目录下

③、复制代码,可以看到运行结果

!!!注意: 写代码的时候,如果采用nargout=0这个参数,如果.m文件内容为函数(无输出参数的函数),则会出现下图所示的没有返回值的情况,这个时候,我们仅仅需要给.m文件里的函数一个随意的输入变量即可保证python可以正常接收.m文件的返回值。

!!!其次:matlab代码函数只能返回结构体数据,数据均被result包裹。

最后,如果出现“不受支持的 Python 数据类型: numpy.ndarray”问题,使用如下命令即可操作。matlab.double只能操作matlab.engine接口返回的列表数据,如果数据只有一个,则直接引用即可。

 

3、nodejs调用python

Nodejs调用python的几种方案_qq_30386941的博客-优快云博客_nodejs调用pythonnodejs可以使用JavaScript进行后端应用开发,同时使用electron可以开发桌面应用,可以说是相当强大。如果要在nodejs中读取本地文件则可以使用fs模块进行,ffi模块可以调用C开发的动态库,也可以实现更多的本地化操作,但是C开发动态库难度比较大成本比较高,这时候可以考虑使用python代替。python可以说是相当简单,它的库非常丰富,几乎可以满足你能想到的需求,因此python代替C库开发是不错的选择,下面介绍几种nodejs调用python的方法。https://blog.youkuaiyun.com/qq_30386941/article/details/126819067

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

发光的沙子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值