怎麼在matlab中執行c程式,怎麼在matlab中呼叫用c語言編寫的程式?

2021-03-25 23:39:51 字數 2928 閱讀 6902

1樓:匿名使用者

1.準備好c語言程式,清楚c語言的入口函式

2.編寫mexfunction函式。mexfunction函式為c語言與matlab語言的介面函式。

呼叫例項在mylinedetect.c檔案中.在matlab中呼叫mex指令編譯相關檔案,將c語言編譯為mex檔案。

3.編譯完成後,生成mylinedetect.mexw32或mylinedetect.mexw64檔案,此檔案即mex檔案,用於matlab與c語言介面函式.

4.編譯完成之後,編寫matlab函式,呼叫mex檔案。以mex檔案的形式呼叫編譯完成的c語言函式[o1,o2]=mylinedetect(double(x).

');......

5.輸出結果,上述linedetect函式完成影象中直線檢測功能,帶入matlab中呼叫後形成結果。

怎麼在matlab中呼叫用c語言編寫的程式?

2樓:匿名使用者

1.準備好c語言程式,清楚c語言的入口函式

2.編寫mexfunction函式。mexfunction函式為c語言與matlab語言的介面函式。

呼叫例項在mylinedetect.c檔案中.在matlab中呼叫mex指令編譯相關檔案,將c語言編譯為mex檔案。

3.編譯完成後,生成mylinedetect.mexw32或mylinedetect.mexw64檔案,此檔案即mex檔案,用於matlab與c語言介面函式.

4.編譯完成之後,編寫matlab函式,呼叫mex檔案。以mex檔案的形式呼叫編譯完成的c語言函式[o1,o2]=mylinedetect(double(x).

');......

5.輸出結果,上述linedetect函式完成影象中直線檢測功能,帶入matlab中呼叫後形成結果。

3樓:農靖海

用標頭檔案

就行了檔名 first.h (宣告你需要實現的函式)f1();

f2();

檔名 first1.c

#include 「first.h」

f1()

檔名 first2.c

#include 「first.h」

f2()

檔名 main.c

#include 「first.h」

main()

補充回答:出現lnk2001: unresolved external symbol "void __cdecl print(void)" (?

print@@yaxxz) 檢查下你的宣告,實現,和呼叫的函式名是否一致,一般是這個原因引起的

如何在matlab上執行c語言寫的程式

4樓:刀無極啊

1.準備好c語言程式,清楚c語言的入口函式

2.編寫mexfunction函式。mexfunction函式為c語言與matlab語言的介面函式。

呼叫例項在mylinedetect.c檔案中.在matlab中呼叫mex指令編譯相關檔案,將c語言編譯為mex檔案。

3.編譯完成後,生成mylinedetect.mexw32或mylinedetect.mexw64檔案,此檔案即mex檔案,用於matlab與c語言介面函式.

4.編譯完成之後,編寫matlab函式,呼叫mex檔案。以mex檔案的形式呼叫編譯完成的c語言函式[o1,o2]=mylinedetect(double(x).

');......

5.輸出結果,上述linedetect函式完成影象中直線檢測功能,帶入matlab中呼叫後形成結果。

5樓:渾永修毋嬋

呵呵,看來我們有研究相同的問題吧

matlab是一種科學的計算語言,採用的是解釋執行的方式,在配置比較水的機器(比如說我的),執行起來速度不敢恭維,但是他適合工程師用,快速建立起自己的運算平臺,很多語法是類似c語言。你可以考察一下matlab的安裝目錄下extern下面lib庫中的函式,可以發現,有很多的c語言**,實際上,其核心有很多c的成分。

所以你應該可以明白了,可以執行,但是要把matlab的庫函式包含在c編譯庫中。

你完全可以在extern中的example中,在matlab環境下面執行幾個c**試一試,當然所採用的指令是mex(把c語言用於matlab中),mcc把matalb**轉化為c**,一些具體的引數,你可以用matlab強大的help工具獲得。我們還可以一起**一下啊,給各郵箱之類的吧,呵呵,很樂意的

在c語言程式設計中,如何呼叫matlab的繪圖功能?

6樓:day忘不掉的痛

一、呼叫

baimatlab引擎

呼叫matlab引擎可以du在win32、mfc中使用,zhi

它的原理實際上dao相當於開啟一個回精簡版的matlab然後往裡面輸命令答。下面是呼叫matlab中的加法程式add.m的例子。

先在matlab的work目錄下建立add.m檔案並編寫程式如下:

function s = add (a, b) s = a+b;在c程式中,首先開啟精簡版的matlab

engine *ep = engopen (null);

編譯執行後,會自動開啟一個命令列監控視窗,輸入pwd就可以看到當前的工作目錄,於是需要先將工作目錄轉換至存放add.m的目錄: engevalstring (ep, 」cd ..

\\..\\work」);

engevalstring是往matlab裡輸命令的函式,顯然我們的目標是成功執行: engevalstring (ep, 」s=add(a,b)」);

目前matlab中並沒有a和b兩個變數,因此需要在c中初始化這兩個變數並轉換成matlab基本變數型別mxarray,才能將它們輸入到matlab中。

7樓:匿名使用者

你這樣想沒

bai有錯,但du是你有沒有考慮

matlab程式if條件不滿足也執行

if 45 誰說的if語句可以這樣用了?執行時按照從左向右的順序 45 要麼為0,要麼為1 但顯然不管是0還是1都要小於135 所以永遠是真 應該是if 45 matlab if語句 兩個條件同時滿足 程式執行 if a 0 b 0 statement end 出錯 多個條件要用括號 if a 0 ...

matlab中如何程式設計序進去,matlab中的指令碼程式怎麼編寫?

matlab 程式的檔案 是以.m檔案的形式呈現的。將matlab 編寫進.m檔案內然後版 執行即可。例子 權 建立一個 helloworld.m 檔案內包括內容如下 fprintf hello world 使用快捷鍵f5直接執行,然後可以在控制檯下看到列印的 hello world 按你問的問題,...

matlab程式中是什麼意思,matlab裡和有什麼區別

乘冪的意思,如x2可寫成x.2 是對物件每個元素都進行乘冪運算的意思。比如a是一個矩陣,a 2 a a,而a.2 b,b為a中所有元素都平方後的矩陣,即對a中的某個aij,b中對應位置的是aij 2,明白了吧?matlab裡.和 有什麼區別 這是點乘 是乘法。直接用乘法的話,是矩陣乘法,也就是說,必...