matlab将脚本导出动态库文件.dll,并被python调用
文章目录:
- 一、matlab将脚本生成动态库.dll文件
- 1.1 编写简单的脚本函数
- 1.2 生成dll文件
- 二、python调用.dll
所使用的的环境如下:
- 系统:windows10
- matlab版本:2018b
- python:3.6
一、matlab将脚本生成动态库.dll文件
1.1 编写简单的脚本函数
编写New_sin.m脚本,实现正弦函数的计算功能
function newsin = New_sin(x)
%使用sinx的泰勒展开式求解
double sum;
double a;
double b; %//sum代表和,a为分子,b为分母
double p;
char s ;
s=1;
sum=0;
a=x; %//分母赋初值
b=1; %//分子赋初值
p=1;while abs(a/b) >= 1e-6%while a/b >= 1e-6sum = sum+s*(a/b); %//累加一项a = a*x*x; %//求下一项分子b = b*2*p*(2*p+1); %//求下一项分母s = s*(-1);p = p+1;endnewsin = sum;
1.2 生成dll文件
- 选中标题栏的APP,然后选中matlab coder
- 在弹出的窗口把刚才写的脚本添加进来,其它保持默认,然后点击右下角的NEXT
- 定义输入的类型,首先再次载入刚才的脚本,然后定义输入类型,我这里只有一个输入的参数X,定义x为double类型的,点击右下角NEXT进行下一步
- Check for runtime issue,我这里测试的时候报错了,先不管他
- 生成文件,buil type选择动态库,然后生成,最后下一步就生成好了
- 在脚本文件夹下
codegen/dll/New_sin/New_sin.dll
就是生成的动态库文件
二、python调用.dll
代码如下:
import ctypes
ll = ctypes.cdll.LoadLibrarylib = ll("./New_sin.dll")
# 设置sum()函数传入参数的类型,
# lib.New_sin.argtype = ctypes.c_double
# 这是sum()函数返回参数的类型
lib.New_sin.restype = ctypes.c_double
print(lib.New_sin(ctypes.c_double(1.0472)))
这里要注意不能直接把要计算的数字传入函数,ctypes提供了数据类型转换的桥梁,更多资料自行百度
matlab将脚本导出动态库文件.dll,并被python调用相关推荐
- python调用c++动态库 linux_linux中使用boost.python调用c++动态库的方法
前言 最近开始使用 robot framework 测试c++的动态库,robot framework 是跑在 windows 上面,c++动态库是跑在远程linux主机上面.测试办法是让 robot ...
- 【转】matlab与C/C++混合编程——在Windows/Linux上调用Matlab编译的动态库文件
转自:matlab与C/C++混合编程--在Windows/Linux上调用Matlab编译的动态库文件_sinat_18131557的博客-CSDN博客 date version comments ...
- 计算机系统动态库修复,一键修复!动态库文件 mfc100u.dll 修复使用说明
mfc100u.dll是VS2010编译的软件或游戏所产生的动态库文件,如果运行程序时提示缺少mfc100u.dll文件,可以安装Visual C++ 2010 ,计算机上运行使用 Visual C+ ...
- java 动态库_java调用dll动态库文件的一般总结
前一段时间,在项目需求中,需要调用一下第三方的动态库文件,下面是本人一些尝试的经历. 首先需要明白的是,在java中是不能直接调用动态库文件的,因为动态库文件是使用c或是c++编写的,作为一种跨 ...
- VS2013动态库文件的创建及其使用详解
一.VS2013动态库文件的创建 1.新建项目,win32,win32项目,输入项目名称,例如MakeDll. 2."确定"--"下一步",选择"DL ...
- C++导入导出动态库
今天不明白为什么大家在写动态库的时候,都要用到 #ifdef @@@@API#else#define @@@@ __declspec(dllimport)#endif 为什么明明是导出动态库,还要用到 ...
- 【转】VS2013动态库文件的创建及其使用详解
一.VS2013动态库文件的创建 1.新建项目,win32,win32项目,输入项目名称,例如MakeDll. 2."确定"--"下一步",选择"DL ...
- 静态库(lib)和动态库(dll)的使用
静态库(lib)和动态库(dll)的理解与使用 前言 一.函数重载的理解 二.extern "C" 的理解 三.静态库的调用 1.静态库的生成 2.静态库的调用 四.动态库的调用 ...
- windows平台下静态库(.lib)和动态库(.dll)使用
一.静态库和动态库的区别 1. 静态库(.lib) 函数实现和变量的二进制文件 编译链接可执行程序时,静态库会直接展开到文件. 发布可执行程序时,不需要静态库. 编译出的可执行文件较大. 2. 动态库 ...
最新文章
- 英伟达开源自动驾驶AI算法,升级芯片性能7倍于Xavier
- pgsql中层次查询方法
- 实验吧—Web——WP之 上传绕过
- ubuntu 安装google浏览器
- 数字信号与数字电路 数制与码制
- Python IDE 详细攻略,拿来吧你~
- android studio简易记账本,Android记账本
- beast单元库的总结
- 【opencv】双目视觉下空间坐标计算/双目测距 6/13更新(转载)
- adb查看安卓设备系统Android版本
- Mosquitto感知客户端上下线的方法
- 图的简单应用(C/C++实现)
- android5.1禁用通知栏,android-阻止通知栏
- octobercms mysql_OctoberCMS插件形成数据库关系(OctoberCMS plugin form database relationships)...
- Unity同时接入微信和支付宝支付 Android篇(aar包和jar包)
- 「DLP-KDD 2021征文」及上届论文全集,包含深度学习推荐/广告系统、多目标、模型服务等
- 我用Python分析淘宝低价人群和匿名人群的连衣裙数据后,发现了这些秘密!
- 向华为学习集成供应链管理:让产供销协同起来的供应链计划管理
- Oracle基础学习
- 软件测试之构建测试---BVT