編寫matlab和C 介面的大體步驟是什麼啊,我是初學的,求大神助攻

2025-07-14 22:40:15 字數 4365 閱讀 4979

1樓:天才的土地

可使用matlab的mex程式設計技術來實現兩者連線。

初學matlab,求大神幫忙寫一下

2樓:射手座

%用改進的尤拉方法求數值解。

clc,clear;

e=;%迭代步長。

a=[-1 -1;-1 1];%係數矩陣。

a=0;b=2;%迭代區間。

x=a:e:b;

n=(b-a)/e;

f=zeros(2,n+1);

f(:,1)=[1;0]';

for i=2:n

改進的尤拉迭代。

f1=f(:,i-1)+e*(a*f(:,i-1));

f(:,i)=f(:,i-1)+e/2*(a*f(:,i-1)+a*f1);

endplot(x,f(1,:)'r');

hold on

plot(x,f(2,:)'g');

legend('x-t','y-t')

求用matlab和c++編寫出解這個微分方程的**,或者其他的軟體也可以

3樓:網友

用matlab求解 x'+x=1 x(0)=1 的微分方程,可以用dsolve()函式就可以解決。解決方法如下:

syms x(t)

dx=diff(x,1);

dsolve(dx+x==1,x(0)==1)

ans =1

用ode45()函式——變步長runge-kutta數值演算法求解,得到結果是一樣的。

x0=1; %初值。

t,x]=ode45(@odefun,[0 20],x0); 求解。

plot(t,x),grid on;xlabel('t'),ylabel('x(t)') %繪圖。

function f=odefun(t,x) %自定義函式。

f=1-x;end

matlab語言和c,c++語言之間有什麼樣的關係

4樓:網友

matlab是應用程式,內建大量高精度的專業演算法。專門用於科學領域的數值運算。它的指令表示式與數學、工程中常用的形式十分相似,故用matlab來解算問題要比用c,fortran等語言完成相同的事情簡捷得多,matlab的基本資料單位是矩陣。

c/c++是開發工具,用於開發matlab之類的應用程式。需要經過演算法設計,**除錯和編譯等過程。

如果專用於數值計算,matlab則是更便捷,更專業的應用工具。

5樓:網友

沒有關係 都是程式語言。

c++與mat lab哪個容易學?

6樓:失落的記憶

你還是學matlab吧。因為它是專門的數學工程計算軟體,語言易懂靈活好用。唯一一點就是需要記憶一些常用的函式,大概100來個吧。

記不住也沒關係,可以查的,命令語法什麼的,都有幫助文件的,很方便。

c++適用於編寫各種特殊用途的軟體,範圍更廣,但這也決定了它的針對性不強。比如你要研究迴歸分析,差值,求偏微分方程、隨機微分方程的數值解,那麼需要自己編寫演算法,寫很長的**,然後測試,求解。不對的時候還要修改,並且畫影象的話比較麻煩。

其實,matlab最大的優點就是,1. 矩陣運算功能很強且有邏輯處理函式,**簡潔高效,不用像c++一樣,通過元素單個處理,寫很多for,while迴圈(會c/c++語言的人都知道,複雜**裡面乙個又乙個的if、for、while巢狀,**讀起來頭都大了);2. matlab自身自帶很多功能的函式(包括各種數學函式),而且你也能自己編寫函式,變數定義比較隨便,不像c++每次總要定義一大串變數型別,看都看得累死了;3.

影象功能很強大,計算視覺化方便,不像c++要畫圖的話還要用到mfc的東西,那個麻煩啊。說了這麼多,好像c++一無是處,不是的,c++是通用程式程式語言,當然不那麼專門了,在處理底層以及某些複雜數值計算效率上,c++還是很強的。所以,matlab有matlab和c++聯合程式設計的功能呢。

matlab除此之外還有其他很多介面和功能,這裡不一一說了……

提醒一下,兩種語言不用都學,因為你會發現它們的語言編寫風格不一樣,編**時候容易帶入習慣性思維(比如會c++的人寫matlab**,在前期經常會把c++的習慣帶進來,寫出來的**效率不高,甚至不知道怎麼寫某個具體功能的**)。不過,適應後就好了,要看你是否真正用心去學了。

7樓:甜到哀傷

我matlab,c 都學了,我覺得matlab 比c更實用,而且容易學,因為就matlab軟體來說,如果你需要了解什麼結構的使用的話,軟體裡邊就可以調出來,而且,matlab更實用方便解決數學問題,什麼線性代數啊,訊號系統分析啊。數學問題解決,資料圖分析都是一目瞭然。(我們專業老師也是這麼說的) c 就是程式設計,如果你是搞什麼軟體研發的話,c 就比matlab要牛。

c 一直就很強大。

其實這些軟體都有她的優點啦。總而言之,如果你學會了c的話,再來學matlab會容易得多,這是肯定的!!

8樓:網友

matlab最初是用來解決數學上的矩陣問題的,它在解決數學問題和繪圖都有很強大的功能,我只用它來寫過關於複雜數學問題的程式,非常方便,但是如果寫一些系統什麼的,還是c語言順手。

9樓:**夢幻

都是易學難精。只要解數學問題的話matlab夠用了。

c++自由度更大,但從你提到的這些問題看來,用不著c++

10樓:njw孫尚香

不認真學你哪個都學不好。

matlab中的多個.m檔案轉化成exe檔案,我用過mcc但是一次只能轉換乙個.m檔案

11樓:手機使用者

+檔案。

命令的格式為:

mcc[-option]fun[fun2...mexfile1...mlifile...

轉化後的檔案預設在當前目錄中。

若m檔案多於乙個,那麼每個檔案對應轉化相應的c和c++檔案。

若原始檔包含c檔案,則將它們同新生成的c檔案一起編譯。

一些有用的option引數解釋如下:

c 轉化為c語言檔案但是不生成mex檔案或者獨立應用程式。

d指定生成的檔案目錄。

g/g 進入除錯狀態。

h 編譯幫助函式,所以的m檔案都將編譯到mex檔案或者獨立應用程式。

l《option》 指定目標語言為option,其中c,cpp,p分別代表c語言,c++,matlab語言。

m 指定建立獨立c語言應用程式的巨集,作用等於『-t-w main -l c-h-t link:exe

m"" 向mblid或者mex教本傳遞string中包含的資訊。

o指定輸出檔名。

o指定優化引數。

p 指定建立獨立c++語言應用程式的巨集 作用等於-t-w main -l cpp-h-t link:exe

v 詳細顯示編譯步驟。

x 指定建立獨立mex檔案的巨集,作用等於-t-w main -l c-t link:exe

s 轉化為simuink的s函式。

eg現有m檔案 ,主函式main中呼叫了子函式mrank

function main

r=mrank(5)

function r=mrank(n)

r=zeros(n,1);

for k=1:n

r(k)=rank(magic(k));

end在matlab環境下執行主程式可以看到結果。

mainr=1

現在要把他們轉化為c和cpp程式。

在matlab工作視窗中輸入下面命令。

mcc-mc main mrank

可以得到下面個檔案:

在matlab中輸入下面命令。

mcc -lcpp main mrank

可以得到下面5個檔案。

有了這些程式以後,就可以在其他c,c++程式中方便呼叫了。

建立獨立可執行程式。

方法1:編譯m檔案為可執行程式。

mcc -m main mrank

or mcc -p main mrank

方法2:將編譯的c c++轉化為可執行程式。

mbuild main_

ormbuild main_

12樓:網友

建議你使用copydeploytool deploy tool其實是乙個 mcc的前端介面(用mcc的命令列引數一樣可以完成編譯工作)

你開啟工具箱後 按照上面的操作就可以了。

類似於你這個主介面和子介面都可以打包進來。

13樓:網友

貌似matlab的程式執行都需要安裝matlab的環境吧。

為什麼非要生成exe呢?

用matlab編寫實現fft的程式

function y myditfft x 本程式對輸入序列實現dit fft基2演算法,點數取大於等於長度的2的冪次 myditfft.c m nextpow2 x 求的x長度對應的2的最低冪次m n 2 m if length x x x,zeros 1,n length x 若的長度不是2的冪...

c語言編寫函式用來計算圓的面積,c語言 編寫一個函式,用來計算圓的面積。

include define pi 3.14159 float getarea float nr int main include float area float r int main include define n 3.14 圓周率float s float r 計算面積void main 編...

C語言編寫的病毒有哪些,病毒編寫

由於現在大多數的所謂的黑客都沒有真正的技術,他們的木馬都是利用別人編寫的木馬生成程式生成的,只要一點就好了!現在流行的木馬有vb e語言 pascal 注意delphy不是一門語言,而是pascal語言的器,就像c 跟vc 之間的關係 等,大量用他們編寫的原因並不是他們有多好,只不過是他們簡單易學!...