作者rtetrtoo (rtetrtoo)
看板MATLAB
标题[讨论] matlab加速问题
时间Sun Jun 15 16:51:33 2014
大家好
最近在做影像处理的project
我想问怎麽让matlab call C, C再call matlab
开发环境: windows7(64bit), matlab 2012a, compiler:visual studio 2010
网路很多这方面的资料 但好像都是只call一次
而我是要call 很多次...
目前希望的处理流程大致是这样:
1. 资料先用matlab做初步处理後得到一维矩阵A
A矩阵的每个element都要拿来给function F做运算
(ps: 每个element的运算都是independent ; F 是自己写的演算法,里面有些矩阵运算)
运算结果再写到一个新的矩阵B
目前写个for loop去跑,每次iteration都会呼叫function F计算A的每个element
但是很慢 (A的element满多的,推测是这个for loop拖垮程式执行速度)
因此我想把这个for loop丢给C平行化
2. 把A矩阵传给c code,用openMP去平行,然後算出新矩阵B
卡在这边...
因为不知道怎麽在.c的for 呼叫 matlab 的 function F,然後算出B矩阵
而且这样不确定会不会比较快@@
3. 矩阵B丢给matlab 的function显示图片
---------------------------------------------------------
网路上查到的都是在visual studio 下呼叫matlab function(用engine那个方法)
但我的状况像是
在matlab环境下 呼叫C->C再呼叫matlab的function
->C算完後,结果再丢给matlab显示图片
我知道怎麽在matlab环境下编辑C和带有openMP的code
也知道怎麽在.m档呼叫C 并且把矩阵A传给C code
然後就不确定要怎麽做比较好了...
希望各位大大给我指示方向或是google的关键字 >_<
感激不尽
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.112.42.53
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/MATLAB/M.1402822295.A.3E6.html
1F:→ rtetrtoo:查到TOMLAB 好像有机会 06/15 18:31
2F:推 sunev:matlab 的help有些范例 06/15 20:55
3F:→ rtetrtoo:发现用mcc, mbuild可以 06/16 00:14
4F:→ jatj:mcc -m function compile to exe then call in C 06/18 09:02