我正在开发一个关于Matlab的项目,我们必须优化性能,并且我正在考虑将一些由.m文件创建的函数调用进行并行化。

这个想法很简单,从Matlab文件(.m)调用编译为MEX的C文件,并从该C文件创建一对线程并从每个线程回调matlab函数。

理论的工作原理,我可以创建线程,我也可以调用matlab函数,问题是我不能从线程调用matlab函数:

//Global variables

mxArray **g_plhs;

mxArray **g_prhs;

int g_nlhs;

int g_nrhs;

//Thread function

DWORD WINAPI my_function( LPVOID lpParam )

{

mexCallMATLAB(g_nlhs,g_plhs,g_nrhs,g_prhs,"matlab_function");

return 0;

}

//Main function

void mexFunction(int nlhs, mxArray *plhs[],

int nrhs, const mxArray *prhs[]) {

DWORD dwThreadIdArray[MAX_THREADS];

HANDLE hThreadArray[MAX_THREADS];

g_plhs = plhs;

g_prhs = prhs;

g_nlhs = nlhs;

g_nrhs = nrhs;

hThreadArray[0] = CreateThread(

NULL,

0,

my_function,

NULL,

0,

&dwThreadIdArray[0]);

WaitForMultipleObjects(MAX_THREADS, hThreadArray, TRUE, INFINITE);

for(i=0; i

{

CloseHandle(hThreadArray[i]);

}

}在使用matlab时,我们对该选项有任何限制吗?

有人试过这样的事吗?

编辑:有没有不需要并行工具箱的选项?

matlab引擎 多线程,使用Matlab进行多线程处理相关推荐

  1. c matlab 引擎调用,【MATLAB与C的混合编程】之【C程序调用Matlab计算引擎】(1)

    先贴本人调试通过的代码: #pragma comment(lib, "libmx.lib") //#pragma comment(lib, "libmat.lib&quo ...

  2. c 使用matlab引擎,[转载]C与MATLAB混合编程之调用MATLAB引擎

    Visual Studio调用MATLAB需要的配置已经在<Visual Studio调用MATLAB的配置>一文中给出了详细的步骤,本文将介绍混合编程的示例. 在C中调用MATLAB,据 ...

  3. VS下调用Matlab引擎

    VS2008是当前主流的应用程序开发环境之一,开发环境强大,开发的程序执行速度快.但在科学计算方面函数库显得不够丰富.读取.显示数据图形不方便.Matlab是一款将数值分析.矩阵计算.信号处理和图形显 ...

  4. matlab引擎函数,Matlab引擎库函数

    Matlab引擎库包含了一系列从外部应用程序调用和控制Matlab引擎的函数.下表列举了C语言的引擎库函数,这些函数后使用了eng前缀名 表 1 C语言引擎函数库 引擎函数 功能描述 engOpen ...

  5. c 与matlab混编,C与MATLAB混合编程之调用MATLAB引擎

    Visual Studio调用MATLAB需要的配置已经在<Visual Studio调用MATLAB的配置>一文中给出了详细的步骤,本文将介绍混合编程的示例. 在C中调用MATLAB,据 ...

  6. matlab的矩阵编译器,MATLAB引擎方式实现VC与MATLAB混合编程

    VS2008是当前主流的应用程序开发环境之一,开发环境强大,开发的程序执行速度快.但在科学计算方面函数库显得不够丰富.读取.显示数据图形不方便.Matlab是一款将数值分析.矩阵计算.信号处理和图形显 ...

  7. Qt 调用MATLAB引擎混合编程

    0.前言 C/C++调用MATLAB有三个方式:调用dll文件.调用exe可执行程序和调用Engin引擎. 第一种方式利用MATLAB Coder 将MATLAB代码生成C/C++代码和相关动态链接库 ...

  8. c matlab 引擎调用,将C/C++回调传递给matlab引擎

    我有一个C文件: >启动matlab引擎 >调用matlab_optimize()(一个编译的m文件,在内部运行一个matlab优化器) >打印结果 >停止发动机并退出 这很好 ...

  9. matlab的多线程操作

    matlab的多线程操作 先导知识 一.结论 二.定时器timer 三.多进程操作 先导知识 听说过:定时器中断.线程.进程 知道:matlab的帮助文档使用方式,如:doc memmapfile.h ...

最新文章

  1. php怎么看数据化,3.2.11 查看和判断数据类型
  2. 模拟Web 服务器磁盘满故障深入解析
  3. 用于模拟短信群发情况的随机数产生
  4. Markdown的基本语法
  5. H5之audio标签放音兼容所有浏览器方法
  6. 赚钱的方法地推拉新一定算一个
  7. 不要节省版本号,以方便交流
  8. GPU数据库PG-strom安装及使用
  9. p6spy oracle,springboot p6spy 打印完整sql
  10. 云真机可以帮助测试解决什么问题?
  11. 科技热点周刊|马斯克卖掉特斯拉 10% 股票;Facebook 停用面部识别系统;微软拥抱 Metaverse;雅虎退出中国
  12. QCC3040---Panic types
  13. 《信息检索》课程笔记
  14. GAN——生成对抗网络详解
  15. 如何在NVivo中使用编码条探索编码?
  16. 图形学常见概念与算法-纹理过滤
  17. python多图片合并pdf_Python结合ImageMagick实现多张图片合并为一个pdf文件的方法
  18. 实验3 SQL的复杂多表查询以及视图
  19. ROS2021开发者大会将于新奥尔良重启
  20. php实现魔方变换颜色,php魔方方法

热门文章

  1. CSS 改变文本选中颜色
  2. 动态切换tableView中的cell的种类
  3. css border画图
  4. Bailian2759 神奇的口袋(2)【DP】
  5. Bailian2815 城堡问题【DFS】
  6. POJ3749 破译密码【密码】
  7. Java 容器的使用及数组、List、Set 的相互转换
  8. 机器学习基础(十九)—— Trick
  9. 矩阵分解——三角分解(Cholesky 分解)
  10. java bfs dfs_java优先搜索(DFS/BFS)实际应用