當前位置:首頁 » 編程軟體 » mex編程

mex編程

發布時間: 2022-11-06 04:34:32

『壹』 matlab !!!!

摘要:由於MA7ⅡAB不能直接對硬體端12進行讀寫操作,缺乏了實時性,使得工程上的應用受到了
極大的限制。而通過MATI.AB應用程序介面Mex調用C++語言,可實現在MATLAB環境下對硬體端
12信號的讀寫。為此,筆者對Mex介面文件進行了詳細介紹,包括Mex介面的各種特殊功能、詳細編
寫規則和具體編譯要求,具體闡述了Mex介面在MA啊AB環境下的調用及使用。並根據Mex介面的
相關功能。對MATLAB數據採集系統的設計在理論上進行了探討,以圖對MATLAB功能進行進一步
的擴展。
關鍵詞:MATLAB:介面;數據採集
Research of Data—Collection System Based onⅣ隊TLAB
Wang Hailong,Chen Shanjie,Li Qian,Zhang Peng,Ku Tao,Xu Dahua
(Co//ege ofEngieering,Nanjing Agriculture University,Nanjing 210031)
Abstract:Since MATLAB can not write directly to hardware available for operation.and it lacks of a re。
al-time,it works on the applications has been significantly hampered.MATLAB applications through rede—
ployment C++language interface Mex.Achievable in the MATI。AB environment for the specific hardware
interface signals.Therefore,author of a paper details Mex interfaces,inchding interfaces Mex various spe—
cial functions,and specific translation rules for the preparation of detailed,enuncimed the transfer and the
use of Mex interfaee in the MA』nAB environment.And in accordance with the relevant functional interface
Mex.MATIAB data acquisition system for the design in theory explored in a bid to further expand the
functions of MA7n。AB.
Key words:MA,11AB,Interface,Data collection
MATLAB產品系列被廣泛地應用於包括信號與
圖像處理、控制系統設計、通訊、系統模擬等諸多領域。
它的一大特性是有眾多的面向具體應用的工具箱和仿
真塊,包含了完整的函數集用來對信號圖像處理,控制
系統設計,神經網路等特殊應用進行分析和設計。其他
的產品延伸了MATLAB的能力,包括數據採集,報告
生成,和依靠MATLAB語言編程產生獨立C/C++代
碼等等。
正因為其強大的科學計算與可視化功能、簡單易
用的開放式可擴展環境以及所擁有的各種面向不同領
域而擴展的工具箱(ToolBox)t11,使得MATLAB在許多
學科領域中成為計算機輔助設計與分析、演算法研究和
應用開發的基本工具和首選平台。
但是,MATLAB也存在局限性,就是不能直接對
硬體埠進行讀寫操作,從而影響了它在測控系統開
發上的應用范圍。但它提供了應用程序介面API,通過
該介面,用戶可以方便地完成MATLAB與外部環境
的交互(如圖1所示)。為此,如何通過介面文件調用其
它語言編寫的程序(如C_卜}),再通過其實現對硬體端
口的讀寫操作,最終實現在單一MArⅡAB環境中進
行測控系統的開發,便成了一項值得探討和研究的問
題。
1 MATLAB應用程序介面文件Mex
MATLAB應用程序介面(APD主要包括3部分:
Mex文件(外部程序調用接13),Mat文件(數據輸入輸
出介面)及MATLAB計算引擎函數庫。它們實現的一
般功能分別為:(1)在MATLAB環境中調用C/c++
語言或FORTRAN語言編寫的程序,以提高數據處理
效率;(2)向MATLAB環境傳送數據或從MATLAB
環境接收數據,即實現MATLAB系統與外部環境的
數據交換;(3)在MATLAB和其他應用程序間建立客
戶機/伺服器關系,將MATLAB作為一個計算引擎,
在其他應用程序中調用從而降低程序設計的工作量。
以下重點介紹Mex文件的應用。
1.1眥X是一種動態鏈接的子程序,其具體功能如下
(1)對於某些已有的C程序,可以通過Mex方式
在MATLAB環境中直接調用;
(2)對於影響MATLAB執行速度的FOR__I,OOP
等循環體,可以編寫相應的C程序完成相同功能,並
編譯成Mex文件,提高運行速度;
(3)對於A/D或D/A卡,或其他PC硬體,可以直
接用Mex文件進行訪問,擴展MATLAB的功能;
(4)利用MEX文件,還可以使用一些軟體,如
Windows的用戶界面資源等。
1.2 Mex文件的編程規則
(1)編制自己的C++演算法程序;
(2)編制MEX源文件代碼;
MEX文件的源文件主要有兩個部分組成:
①計運算元例行程序(Computational Routine)。它是
鏈接的外部子程序,包含所有要完成計算功能的源代
碼,用來完成實際的計算工作。
②入口子例行程序(Gateway Routine)。它是計算
子例行程序和MATLAB環境之間的介面,用於完成
兩者間的數據交互。入口子例行程序是MATLAB調
用C抖程序所必需的部分,計運算元例行程序可以由入
口子例行程序調用以完成其特定的功能要求。入口子
例行程序具體的使用格式如下:
#include"mex.h"void MexFunction(int nlhs,
mxArray牛pills[],
int nrhs,const mxArray·prhs[])
{
//c語言代碼
)
其中,入口子程序的函數名必須為MexFunction。
prhs為一個結構體類型的指針數組,該數組元素按順
序指向所有的輸入參數;nrhs為輸入參數的個數;plhs
與prhs的類型一致,它指向所有的輸出參數;nlhs表
示輸出參數的個數。該函數通過prhs獲得輸入數據,
對這些輸入數據的處理後經由plhs獲得結果,該結果
作為輸出數據與其它程序進行數據交互嘲。
1.3 Mex文件的編譯和調用
在編譯Mex文件之前,必須先在MATLAB下安
裝好Mex編譯器,安裝方法如下:在MATLAB命令窗
口中輸入mex.setup然後按照提示向導逐步安裝即
可。
Mex文件在MATLAB命令窗口中直接編譯,方
式如下:mex filename,然後按回車鍵,如果編譯通
過,系統就會生成同名字的DLL文件,在以後的程序
中可以像調用MATLAB的內建函數一樣直接調用此
函數。原理如圖2。
由上可知,Mex文件可以作為一個MATLAB的
內建函數來處理,但這個函數又具有強大的介面功能,
可以完成對硬體埠信號的讀寫操作。其對硬體埠
讀寫操作的總流程如圖3所示:
2基於MATLAB的數據採集系統的概念設計
擬採用MATLAB和C的交互編程來處理數據采
集問題,這樣系統不僅具有傳統計算機數據採集系統
的全部功能,而且還具有很強的數據處理能力,實際上
構成了智能虛擬儀器t3]。
初步設計系統由三個模塊構成,MATLAB模塊的
功能包括圖形顯示和存取、數據分析和處理等,C語言
模塊主要實現串列通信功能,而硬體設備則完成對物
理量的變換[4,5/。如圖4所示。
當采樣對象確定後硬體設備也就隨之而定,而C
語言部分實現通信功能也是固定的,故所有的數據處
理功能設置都在MATLAB環境中的人機界面中實
現。該系統的3個界面實現功能如下。
主界面主要由一個圖形框和4個按鈕構成。圖形
框藉助於MATLAB的圖形處理功能,以最佳匹配模
式動態顯示實時采樣數據,實現自動示波器功能。4個
按鈕名稱分別尚釅設置串口」、「開始採集」、「數據處理」
和「退出系統」,滑鼠點擊即可實現相應功能。
在主界面選擇了「串口設置」後,就進入通信協議.
設置界面。這個界面主要由5個彈出式菜單和2個按
鈕構成,彈出式菜單的名稱和選項分別是:埠選擇
(COMI--COM4)、波特率(300-19200)、數據位m8)、停
止位(o~2)和校驗位(無、奇、偶),而2個按鈕則分別對
所設參數進行確認或者修正。
在主界面選擇了「數據處理,,後,則進入數據處理
界面。這個界面的功能與采樣對象有關,需由用戶自己
針對任務要求進行編程。
3結束語
MATLAB具有各種豐富的數值運算及圖形處理
功能,大量實用控制工具箱的存在更為其控制應用奠
定了堅實的基礎;而C語言則對硬體系統具有強有力
的處理能力,可方便地實現數據採集、串列通訊等功
能嘲。Mex文件是MATLAB調用C++和其他語言(如
Visual Fortran等)的簡易介面,它極大地擴展了
MATLAB的應用范圍,使MATLAB系統成為真正意
義上的開放的、功能完善的、自包容的程序設計和數據
處理集成環境Isl。
參考文獻
【l】王正林,王盛開,陳國順.MATLAB/Simulink與控制系統模擬嗍.
北京:電子工業出版社,2005:11-13.
【2】張威.MATLAB外部接121編程嗍.西安:西安電子科技大學出版
社,2004:50-85.
【3】廖良斌,喻方平.基於DSP和USB的圖像採集系統的研究叨.武漢
理工大學學報(交通科學與工程版),2006,.30(1):120.123.
[4】申鼎才,郭慶平.基於Interact的分布式數據採集與分析在岩土工
程中的應用研究明.武漢理工大學學報(交通科學與工程版),
2005,29(6):974-976,992.
【5】王志冰,李漢強.基於USB匯流排的數據採集系統的設計與實現叨.
武漢理工大學學報(交通科學與工程版),2005,29(5):758.761.
[6】楊義偉,蔣大明,戴勝華.駝峰信號微機監測系統的數據採集陰.武
漢理工大學學報(交通科學與工程版),2005,.29(1):154-156.
[7】楊健,張慧慧.基於DSP和ARM的網路化數據採集與信號分析終
端田.計算機工程,2006,32(8):269-271.
【8】李堯坤,史忠科,畢業等.Matlab在基於B/S模式的決策支持系統
中的應用叨.計算機工程,2006,32(5):255-256,282.

『貳』 關於matlab 中的mex用法和編譯器的問題。

沒有問題的。 但不能想像一點不修改。 Mex就是matlab編譯後產生的執行文件。

『叄』 你好,我想用c語言寫mex文件,可是總是提示找不到mex.h,你有什麼辦法嗎,是軟體的問題嗎

聽樓主的意思是在說要往mex這個文件裡面寫東西對嗎?
如果是,那就很有可能是你fopen這個函數用得有誤了。
if((fp=(fopen("note.dat","ab")))==NULL) {/*若文件無法成功打開fopen返回值==NULL*/
fp=fopen("note.dat","wb");
fclose(fp);
fp=fopen("note.dat","ab");
}
可以參考下這個代碼。
ab表示追加,如果存存在這個文件就使用下面的wb建造一個文件,再往裡面寫東西。

『肆』 matlab mex 混合編程

matlab調用C++的mexFunction,提高運算速度;以及在C++中通過將matlab code編譯為dll庫進行調用,演算法設計更加簡便。

『伍』 MATLAB中運行mex_setup後出來這些是什麼意思 不會是程序出問題了吧

mex_setup是程序使用matlab和C混合編程的時候用到,是一個編譯器,相當於把C語言轉換到MATLAB裡面運行

『陸』 matlab如何編譯mex文件

通過MEX文件可以在MATLAB中像調用內嵌函數一樣調用現有的使用C語言和Fortran等語言編寫的函數,實現了代碼重用,同時也能解決MATLAB循環效率低的缺點,提高MATLAB環境中數據處理的效率。
MEX文件的後綴名為 .mexw32
MEX文件的編寫和編譯需要兩個基本條件:一是必須按照MATLAB應用程序介面組件和相關工具,二是要有C語言或Fortran語言的編譯器。
需要對MATLAB系統進行設置,使MATLAB系統知道使用系統的哪一個C語言編譯器,以及其參數和路徑。
MEX文件系統設置:
>> mex –setup按照提示進行,最後出現Done…系統配置完畢。
C語言MEX文件的建立
C語言MEX文件的建立
1. MEX文件的結構
a) 計運算元程序
b) 入口子程序,void mexFunction(int nlhs, mxArray *plhs[],int nrhs,const mxArray *prhs[]){ /*用戶特定的代碼….*/ }
2. 創建timestwoalt.c
#include "mex.h"
void timestwo_alt(double *y, double x)
{
*y = 2.0*x;
}
void mexFunction( int nlhs, mxArray *plhs[],
int nrhs, const mxArray *prhs[] )
{
double *y;
doublex;
/* 檢查參數 */
if (nrhs != 1) {
mexErrMsgTxt("One input argument required.");
} else if (nlhs > 1) {
mexErrMsgTxt("Too many output arguments.");
} else if (!mxIsNumeric(prhs[0])) {
mexErrMsgTxt("Argument must be numeric.");
} else if (mxGetNumberOfElements(prhs[0]) != 1 || mxIsComplex(prhs[0])) {
mexErrMsgTxt("Argument must be non-complex scalar.");
}
/* 為輸出參數創建變數 */
plhs[0] = mxCreateDoubleMatrix(1,1,mxREAL);
/*
為參數 x、y賦值,x為值,而y為指針
(由於MATLAB沒有值傳遞,所以用指針才能得到修改後的y值,
不然修改的是y的一個副本,為臨時變數,在函數返回時,y值沒有變化,
不能得到希望的結果)
*/
x = mxGetScalar(prhs[0]);
y = mxGetPr(plhs[0]);
/* 調用timestwo_alt 子函數 */
timestwo_alt(y,x);
}
3. 編譯鏈接C語言的MEX文件源程序,在MATLAB的控制窗口中輸入:mex timestwoalt.c生成一個名為timestwoalt.mexw32的MEX文件
4. 運行:在MATLAB的控制窗口中輸入
x=2;
y=timestwoalt(x)
輸出:y=4
MEX文件實現了一種C語言與MATLAB的介面,其實際的計算功能仍在C語言形式的計運算元程序中完成,而入口子程序的功能是檢查參數以匹配C語言的參數規范(how to?)。
當有C語言編寫的大型程序時,不必用MATLAB語言重新編寫,只要將此C語言程序作為一個計運算元程序,然後編寫一個入口子程序,完成參數的匹配,然後編譯成MEX文件即可。
MEX文件的另外一個功能是可以將MATLAB編程中的瓶頸問題,如多重循環等,將此類費時的指令用C語言實現,然後作必要的入口子程序,編譯成MEX文件,可以有效地提高MATLAB的效率。
S-函數創建器限制了C語言S-函數的功能:只能有一個輸入信號和一個輸出信號,而且只能處理double類型的數據!所以,可用性不大。

『柒』 手機內存英文名翻譯 急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急

Java:是一種可以撰寫跨平台應用軟體的面向對象的程序設計語言
app:是英文Application的簡稱,由於iPhone智能手機的流行,現在的APP多指第三方智能手機的應用程序
總的意思是Java應用程序。

memo:備忘錄、記事本

Mex :也是一種編程語言

MexApp:大概與上面一樣也是一種程序應用

MexSys:Sys是系統的縮寫,所以也是Mex系統

Mocor :是展訊推出的一種手機平台的代號
store:商店
合起來是Mocor這種手機應用平台的商店的V31版本

mxp:為Flash、Dreamweaver插件擴的展名,可使用 Adobe Extension Manager 進行安裝。

Others:其他

QQDownload :QQ下載

vCalendar:也是一種日歷數據交換格式,乃iCalendar的前身,為網際網路郵件聯盟(IMC)所發布

vCard:電子名片

VDO:Tensilica公司用於SoC設計的Diamond Standard VDO(ViDeO)處理器引擎,可以支持多標准多解析度視頻模塊。是一個視頻點播系統

Video:視頻

zhangyue:可能就是你的名字了

時間倉促,不及詳解,敬請見諒!

『捌』 怎麼在MATLAB中編寫程序,把simulink模擬出來的圖形用MATLAB實現

Simulink的命令行模擬方式:
[t,x,y]=sim('modelname')
利用對話框參數進行模擬,返回輸出矩陣;
[t,x,y]=sim('modelname', timespan, options, ut)
利用輸入參數進行模擬,返回輸出矩陣;
[t,x,y1,y2,...yn]=sim('modelname', timespan, options, ut)
利用輸入參數進行模擬,返回逐個輸出;
參數說明:
'modelname' 運行的模型名(不包含擴展名),必須在Matlab的搜索路徑上。
timespan 指定模擬的時間區間,可以採取以下幾種格式:
(1)[] 空,利用模型對話框設置時間;
(2)T_final 標量,制定終止模擬時間;
(3)[T_start T_final] 二元向量,指定模擬時間區間;
(4)outputTimes 任何指定輸出時間記錄點的向量。
options MATLAB特定的一種數據結構,具有最高優先權,可以覆蓋模型參數對話框中的設置。
ut 賦給模擬對象數入口模塊的量,具有最高優先設置,它是形為[t,u1,u2...]的數值矩陣,每個為時間序列或輸入序列。

熱點內容
wemall微商城源碼 發布:2025-05-14 22:15:20 瀏覽:803
隆地優選交易密碼是什麼 發布:2025-05-14 21:53:23 瀏覽:93
強酸強鹼存儲櫃 發布:2025-05-14 21:45:16 瀏覽:563
車輛參數配置包括什麼 發布:2025-05-14 21:31:03 瀏覽:163
怎麼引入安卓項目 發布:2025-05-14 21:26:39 瀏覽:824
游戲輔編程 發布:2025-05-14 21:18:49 瀏覽:687
三菱plc一段二段密碼什麼意思 發布:2025-05-14 21:17:16 瀏覽:528
電腦開機密碼忘記了怎麼破解 發布:2025-05-14 21:09:40 瀏覽:57
pythondict格式 發布:2025-05-14 21:09:38 瀏覽:886
落葉片拍攝腳本 發布:2025-05-14 20:40:49 瀏覽:800