MATLAB和C語言混合程式設計示例

2021-08-20 03:29:19 字數 1120 閱讀 8838

matlab雖然很好用,尤其在數值運算,影象處理,**方面很簡潔、方便,但有時間當處理比較大的資料時速度確實有點讓人捉急,不過matlab提供了和c/c++混合程式設計的介面,以此兼具二者的優點來緩解這個矛盾。混合程式設計是入門有點難,這主要是你在matlab中和c/c++混合程式設計,一般是這樣的:

matlab 函式傳matlab格式(風格)資料 —>c/c++程式首先解析matlab格式(風格)資料 —>解析後的資料按c/c++ 程式既定的方案(c/c++風格)繼續執行,得到結果 —>c/c++程式最後要把上述結果資料打包成matlab格式(風格)輸出給matlab中的主調程式。

不多說,這裡只是粗淺的示例乙個矩陣乘法的混合程式設計來作乙個大致的入門程式。好了直接上**,程式中含有詳盡的註解,就不單獨說明了。 

1、混合程式設計函式主體 axb.c

//2017/03/29 by dq

#include "mex.h"

#include#include//矩陣相乘

void mutiply(double *a,double *b,double *c,size_t m1,size_t n1 ,size_t n2)

{ size_t i,j,j,ia,ib,ic;

c[0]=0.0;

for(j=0;j2、matlab 主調程式

% 2017/03/29 by dq

clc;

clear;

mex axb.c %用c++編譯器編譯這個c程式

a=rand(3);

b=randi([1,15],3,4);

mat_axb=a*b %使用matlab自身矩陣乘法計算,作為正確性基準

c_axb=axb(a,b) %呼叫c程式實現的矩陣乘法

好了至此我們就完成了乙個簡單的matlab和c/c++混合程式設計的過程,想全面的了解混合程式設計,matlab的說明文件還是很友好的,因此多看官方文件這些基本有說明。

這個混合程式設計過程看似簡單,中間卻可能有很多的麻煩,你想一下,一種語言有時尚且有很多問題,何況混合程式設計,當工程比較大時這種問題會更加突出。一般不推薦混合程式設計,但是啦matlab的庫實在是太好用了,你要自己實現很困難或呼叫其它c/c++不方便,沒法子那只能勇往直前吧,相信matlab會越來越人性化的。

利用C 和Matlab混合程式設計

在c 中引用 dll 檔案 如何引用 程式設計中c 資料型別的轉換 兩者之間的函式變數的傳遞時如何實現的 需要額外新增的dllmwarray.dll 在安裝目錄的toolbox dotnetbuilder bin win64 v2.0資料夾中 脫離matlab安裝的環境下,如何使得程式執行自如 c ...

C 和MATLAB混合程式設計 DLL

先小話一下dll,dll是動態鏈結庫,是源 編譯後的二進位制庫檔案和程式介面,和靜態鏈結庫不同的是,程式在編譯時並不鏈結動態鏈結庫的執行體,而是在檔案中保留乙個呼叫標記,在程式執行時才將動態鏈結庫檔案加載入記憶體。並且dll在執行時是共享的,即當多個程式呼叫時,記憶體中也只保持乙份動態鏈結庫。動態鏈...

c 與matlab混合程式設計

實驗平台 matlab r2016b vs2013 思路 1.設定matlab的編譯器,使用外部的vc或者gcc等編譯器。2.編譯m檔案成dll 3.設定vs的include路徑和lib鏈結庫的路徑 4.編寫c 呼叫dll 步驟 1.設定matlab的編譯器 在命令列視窗下,輸入並執行如下命令 me...