MATLAB學習(五)MATLAB中呼叫C語言函式
在MATLAB中呼叫C語言,可以共用程式碼,並且提高MATLAB程式的效率。查閱了網上的資料,做了一個整合。
親測效果如下:
1、MATLAB呼叫C語言函式的原理
這篇文章對MexFuntion中的每個變數,傳值過程等都寫得很清楚
2、MATLAB呼叫C語言例項
又在一篇博文中,看到了這個簡單的例子,親測可用。操作步驟:
1.在matlab中新建檔案
程式碼如下:
- #include "mex.h" //標頭檔案必須包含mex.h
- double mexSimpleDemo(double *y,double a,double b); //<a href="http://lib.csdn.net/base/c" class='replace_word' title="C語言知識庫" target='_blank' style='color:#df3434; font-weight:bold;'>C語言</a><a href="http://lib.csdn.net/base/datastructure" class='replace_word' title="演算法與資料結構知識庫" target='_blank' style='color:#df3434; font-weight:bold;'>演算法</a>程式宣告,在最後呼叫時,第一
- // 個引數是返回結果
- //c語言到matlab變換,以mexFunction命名
- void mexFunction(int nlhs,mxArray *plhs[],int nrhs,const mxArray *prhs[])
- {
- double *y;
- double m,n;
- //獲取輸入變數的數值大小
- m=mxGetScalar(prhs[0]);
- n=mxGetScalar(prhs[1]);
- //獲取輸出變數的指標
- plhs[0]=mxCreateDoubleMatrix(1,1,mxREAL);
- y=mxGetPr(plhs[0]);
- //呼叫子函式
- mexSimpleDemo(y,m,n);
- }
- //C語言函式
- double mexSimpleDemo(double *y,double a,double b)
- {
- return *y=(a>b)?a:b;
- }
儲存為.c格式的檔案
2.在matlab中輸入
mex mexSimpleDemo.c
3.測試呼叫結果在matlab輸入
a=mexSimpleDemo(5,3)
結果如下:
a=
5
3、除錯Mex檔案問題
這篇博文,在Matlab環境下使用 mex –g myhilb.c命令進行除錯,但無法加斷點進行單步除錯,故需轉到VS環境下除錯的“VS中單步除錯Mex檔案
先挖個坑,回頭再填!
相關推薦
MATLAB學習(五)MATLAB中呼叫C語言函式
在MATLAB中呼叫C語言,可以共用程式碼,並且提高MATLAB程式的效率。查閱了網上的資料,做了一個整合。 親測效果如下: 1、MATLAB呼叫C語言函式的原理 這篇文章對MexFuntion中的每個變數,傳值過程等都寫得很清楚 2、MATLAB呼叫C語言例項
SVM支援向量機系列理論(五)SVM中幾種核函式的對比
核函式可以代表輸入特徵之間特殊的相似性。 5.1 線性核 形式: K(x,x′)=xTx′ K ( x ,
[轉]在C#中呼叫C語言函式(靜態呼叫Native DLL,Windows & Microsoft.Net平臺)
原文:https://blog.csdn.net/yapingxin/article/details/7288325 對於不太瞭解.Net的人,如果想要了解.Net,我必須給他介紹P/Invoke。P/Invoke是什麼呢?簡單地說,就是在.Net中呼叫原生代碼(Native code)的一
vue.js學習筆記(五)--axios中取消請求
部落格:https://fisher-zh.github.io/ 在平時的開發過程中,我們會經常遇到選單切換的問題,在一些切換頻率較低的情況下,在切換到另一個頁面的時候,上一個頁面基本沒有未完成的非同步請求,即時有,在一些情況下也是可以忽略的。但是,在一些切換頻率較高的
DOM學習總結(五)DOM中的事件
什麼是DOM事件? 事件就是當觸發這個事件之後會執行一段程式碼 使用 on 來繫結一個事件 比如:<div onclick="hj()"></div> 常見事件:1.當滑鼠點選某個元素時/或者移動到當前元素上時2.頁面載入時3.改變輸入欄位時4.當HTML表單被提交
python學習(五):Python類中super()和__init__()的關係
1.單繼承時super()和__init__()實現的功能是類似的 class Base(object): def __init__(self): print 'Base create' class childA(Base): def __init__(sel
Matlab知識點(五)
學習用Matlab求解函式的導數 syms x; dydx = diff(x^2*cos(x)) % 未指明自變數,按預設的自變數輸出導數結果 結果如圖: syms t; % 宣告自變數 d2ydt2 = diff(t*asin(x*t),'t',2) %2表示階數
MATLAB學習(四)Excel讀寫資料
一、安裝WPS專業版(支援VBA巨集環境) 今天看到這篇博文,花了兩個多小時搗鼓了一下,最後終於成功地使我的MATLAB從Excel中讀取資料了!(如下圖所示)。 其實大部分時間都在搗鼓出現的“Microsoft Office Word 需要VBA巨集語言支援來完成此操作。”這個問題,在網上找了各種資料,
SODBASE CEP學習(五):流式計算中的類SQL語言EPL
(本文中類SQL語句建模、單元測試建議使用SODBASE Studio,參考示例見視訊教程。 SODBASE CEP中,類SQL語言EPL(事件處理語言)也叫做SODSQL。其基本寫法為 CREATE QUERY 查詢名稱 SELECT 查詢欄位 FROM 流 PAT
flask學習筆記(五)--模板中使用url_for
歡迎加入知了課堂,學習flask之前在檢視函式中使用url_for,實現從檢視函式中跳轉到另一個url。現在我為大家演示如何在模板中使用url_for,實現在頁面點選文字,跳轉至另一個頁面。其實很簡單一、方法1.首先通過檢視函式,渲染出一個頁面@app.route('/')d
Kafka學習(五)Kafka在zookeeper中的儲存
1、Kafka在zookeeper中儲存結構圖2、分析2.1、topic註冊資訊需要先啟動zookeeper,用這個命令 zkCli.sh 進入zookeeper。/brokers/topics/[topic] :儲存test的topic的partitions所有分配資訊[z
ArcGIS學習(五)OpenLayers呼叫WMS服務
OpenLayers: OpenLayers是一個開源的js框架,用於在您的瀏覽器中實現地圖瀏覽的效果和基本的zoom,pan等功能。OpenLayers支援的地圖來源包括了WMS,GoogleMap,KaMap,MSVirtualEarth等等,您也可以用簡單的圖片作
小小知識點(五)——MATLAB對復數的操作
real ron pre fig 技術 分享 and uva ima MATLAB程序 a=3+4*i %復數 real(a) %求復數的實部 imag(a) %求復數的虛部 abs(a) %求復數的模 angle(a) %求復數的相位 conj(a) %求
C#中的深度學習(五):在ML.NET中使用預訓練模型進行硬幣識別
在本系列的最後,我們將介紹另一種方法,即利用一個預先訓練好的CNN來解決我們一直在研究的硬幣識別問題。 在這裡,我們看一下轉移學習,調整預定義的CNN,並使用Model Builder訓練我們的硬幣識別模型。 我們將使用ML.NET代替Keras.NET。為什麼不使用Keras.NET呢?儘管Keras.NE
JAVA學習(五)
java學習 步驟 字符串 關系運算符 幫助 條件判斷 方式 -- lean 一、 調試 步驟1:設置斷點(不能在空白處設置斷點) 步驟2:啟動調試 步驟3:調試代碼(F6單步跳過)筆記本Fn+F6(F5) 步驟4:結束調試 掌握調試的好處? 很清晰的看到,
Wpf學習(五) 數據綁定Binding【小達原創】
per 學習 items style lock lis sof text 繼承 程序的本質是數據+算法,咱們這一篇就看看wpf程序中的數據是怎樣展現在前臺的。 1、咱們新建一個Wpf項目。為該項目增加【data】文件夾,在該文件夾中添加【Person】類,如下圖: 2、打
java學習(五)java類繼承
author java學習 dex int demo [] color javac print 1.制作一個工具類的文檔 javadoc -d 目錄 -author -version arrayTool.java 實例: class arrayDemo {
python學習(五)
module pen pre strong sdfs nbsp from cnblogs bar 第五章 條件、循環和其他語句 5.1 print和import的更多信息 5.1.1 使用逗號輸出 >>> print
Guava源碼學習(五)EventBus
mmu 類圖 null find sync fab cnblogs table array 基於版本:Guava 22.0 Wiki:EventBus 0. EventBus簡介 提供了發布-訂閱模型,可以方便的在EventBus上註冊訂閱者,發布者可以簡單的將事件傳遞
SQL 初級教程學習(五)
san 16px and sql 逗號 括號 nbsp def per 1.DEFAULT 約束用於向列中插入默認值。 CREATE TABLE Orders(Id_O int NOT NULL,OrderNo int NOT NULL,Id_P int,OrderDate