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 之間的關係 等,大量用他們編寫的原因並不是他們有多好,只不過是他們簡單易學!...