文章目录:

  • 一、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文件

  1. 选中标题栏的APP,然后选中matlab coder

  1. 在弹出的窗口把刚才写的脚本添加进来,其它保持默认,然后点击右下角的NEXT

  1. 定义输入的类型,首先再次载入刚才的脚本,然后定义输入类型,我这里只有一个输入的参数X,定义x为double类型的,点击右下角NEXT进行下一步

  1. Check for runtime issue,我这里测试的时候报错了,先不管他

  1. 生成文件,buil type选择动态库,然后生成,最后下一步就生成好了

  1. 在脚本文件夹下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调用相关推荐

  1. python调用c++动态库 linux_linux中使用boost.python调用c++动态库的方法

    前言 最近开始使用 robot framework 测试c++的动态库,robot framework 是跑在 windows 上面,c++动态库是跑在远程linux主机上面.测试办法是让 robot ...

  2. 【转】matlab与C/C++混合编程——在Windows/Linux上调用Matlab编译的动态库文件

    转自:matlab与C/C++混合编程--在Windows/Linux上调用Matlab编译的动态库文件_sinat_18131557的博客-CSDN博客 date version comments ...

  3. 计算机系统动态库修复,一键修复!动态库文件 mfc100u.dll 修复使用说明

    mfc100u.dll是VS2010编译的软件或游戏所产生的动态库文件,如果运行程序时提示缺少mfc100u.dll文件,可以安装Visual C++ 2010 ,计算机上运行使用 Visual C+ ...

  4. java 动态库_java调用dll动态库文件的一般总结

    前一段时间,在项目需求中,需要调用一下第三方的动态库文件,下面是本人一些尝试的经历. 首先需要明白的是,在java中是不能直接调用动态库文件的,因为动态库文件是使用c或是c++编写的,作为一种跨   ...

  5. VS2013动态库文件的创建及其使用详解

    一.VS2013动态库文件的创建 1.新建项目,win32,win32项目,输入项目名称,例如MakeDll. 2."确定"--"下一步",选择"DL ...

  6. C++导入导出动态库

    今天不明白为什么大家在写动态库的时候,都要用到 #ifdef @@@@API#else#define @@@@ __declspec(dllimport)#endif 为什么明明是导出动态库,还要用到 ...

  7. 【转】VS2013动态库文件的创建及其使用详解

    一.VS2013动态库文件的创建 1.新建项目,win32,win32项目,输入项目名称,例如MakeDll. 2."确定"--"下一步",选择"DL ...

  8. 静态库(lib)和动态库(dll)的使用

    静态库(lib)和动态库(dll)的理解与使用 前言 一.函数重载的理解 二.extern "C" 的理解 三.静态库的调用 1.静态库的生成 2.静态库的调用 四.动态库的调用 ...

  9. windows平台下静态库(.lib)和动态库(.dll)使用

    一.静态库和动态库的区别 1. 静态库(.lib) 函数实现和变量的二进制文件 编译链接可执行程序时,静态库会直接展开到文件. 发布可执行程序时,不需要静态库. 编译出的可执行文件较大. 2. 动态库 ...

最新文章

  1. 英伟达开源自动驾驶AI算法,升级芯片性能7倍于Xavier
  2. pgsql中层次查询方法
  3. 实验吧—Web——WP之 上传绕过
  4. ubuntu 安装google浏览器
  5. 数字信号与数字电路 数制与码制
  6. Python IDE 详细攻略,拿来吧你~
  7. android studio简易记账本,Android记账本
  8. beast单元库的总结
  9. 【opencv】双目视觉下空间坐标计算/双目测距 6/13更新(转载)
  10. adb查看安卓设备系统Android版本
  11. Mosquitto感知客户端上下线的方法
  12. 图的简单应用(C/C++实现)
  13. android5.1禁用通知栏,android-阻止通知栏
  14. octobercms mysql_OctoberCMS插件形成数据库关系(OctoberCMS plugin form database relationships)...
  15. Unity同时接入微信和支付宝支付 Android篇(aar包和jar包)
  16. 「DLP-KDD 2021征文」及上届论文全集,包含深度学习推荐/广告系统、多目标、模型服务等
  17. 我用Python分析淘宝低价人群和匿名人群的连衣裙数据后,发现了这些秘密!
  18. 向华为学习集成供应链管理:让产供销协同起来的供应链计划管理
  19. Oracle基础学习
  20. 软件测试之构建测试---BVT

热门文章

  1. AOP - PostSharp 2.0
  2. MFC CEdit 自动换行功能
  3. iOS 使用GPUImage实现iOS 7的模糊效果
  4. linux下ifconfig, DNS以及route配置
  5. redis学习及实践5---redis相关资料参考文献
  6. [shell问答录]:命令、进程、子shell...
  7. 机会只留给有准备的人
  8. hdu 5162(概率期望)
  9. hdu 3954(线段树区间更新)
  10. [LGP4707] 重返现世