符號積分int(f,v)int(f,v,a,b)數(shù)值積分trapz(x,y)%梯形法沿列方向求函數(shù)Y關于自變量X的積分cumtrapz(x,y)%梯形法沿列方向求函數(shù)Y關于自變量X的累計積分quad(fun,a,b,tol)%采用遞推自適應Simpson法計算積分quad1(fun,a,b,tol)%采用遞推自適應Loba
許多時候希望將特定的代碼(算法)書寫成函數(shù)的形式,提高代碼的可封裝性與重復性,簡化代碼設計,提高執(zhí)行效率,下面簡單介紹一下matlab中的函數(shù)定義與使用。
材料/工具
matlab 7.0及以上
f(x)的定義如下: 1、寫一個函數(shù)文件f(x)實現(xiàn)該函數(shù),要求參數(shù)x可以是向量;2、作出該函數(shù)的圖形;3、求出f(x)的零點與最值。解:(1)、編寫M函數(shù)文件functiony=f(x)n=length(x);ifx=0&xp1=[1,1,-6];>>x1=roots(p1);x1=-32由題意可知,x的取值
方法
首先建立M文件或直接點擊(File/New/Function)建立函數(shù)文件,其中函數(shù)文件的格式是:
調(diào)用函數(shù):result =dist(ax, ay, bx, by); 輸出結果:fprintf('笛卡爾坐標系中兩點之間的距離是:%fn',result); 腳本文件: test_dist.m 目標: 實際調(diào)用自定義函數(shù)dist 定義變量: a1:位置a的x坐標 b2:位置b的y坐標 a1:位置a的x坐標 b2:位
function [輸出變量] = 函數(shù)名稱(輸入變量),% 注釋,% 函數(shù)體
1、首先在電腦中打開matlab軟件。 2、在打開的頁面中點擊“主頁”欄目下的“新建”按鈕。 3、然后在打開的下拉菜單中選擇“函數(shù)”選項。 4、即可打開函數(shù)編輯器,在其中可以進行函數(shù)的輸入設置。 5、之后可以點擊“編輯器”選項卡中的“保存”按鈕將編寫的
如下所示,是編寫的一個求1到n之和的求和函數(shù) eg_sum,按照上述格式,編寫代碼如下并保存文件,注意文件命名時不能以數(shù)字開頭:
方法: 1、函數(shù)文件+調(diào)用函數(shù)文件:定義多個M文件; % 調(diào)用函數(shù)文件:myfile.m clear clc for t=1:10 y=mylfg(t); fprintf(‘M^(1/3)=%6.4fn’,t,y); end %自定義函數(shù)文件: mylfg.m function y=mylfg(x) %注意:函數(shù)名(mylfg)必須與文件名(mylf
function [s]= eg_sum( n )
你試圖在命令窗口定義函數(shù),這種做法是錯誤的。 你需要建立一個.m文件,文件名是Chebyshev.m,然后在里面輸入源程序。
% calculate the sum of 1..n
function用來定義函數(shù),一般一個函數(shù)放在一個.m文件里。舉個簡單的例子建立一個myfunction.m,然后在文件中寫。 function y=myfunction(a,b) 其中a,b是輸入函數(shù)的參數(shù),y是函數(shù)返回的值。當需要返回多個值時,可以將y看作一個數(shù)組,或者直接將函
s = 0;
for i = 1:n
直接把f作為函數(shù)的參數(shù)既可以。 1、f.m function y = f(n) y = n^2;end2、demo.m function y = demo(f) y=f(40)/(f(30)-f(20))end3、在命令窗口調(diào)用: >> demo(@f)ans = 3.2000
s = s + i;
在一個m文件中寫多個函數(shù),每個函數(shù)都以function開始,結束可以帶end,也可以不帶(這種情況下,出現(xiàn)另一個function或者到達文件結尾表明前一個function結束)。 第一個函數(shù)作為主函數(shù),可以從該m文件外部調(diào)用,其它函數(shù)都是局部函數(shù),只能被m文
end
回到控制臺Command Window(主界面),注意要使用之前保存的函數(shù)文件名來調(diào)用函數(shù),如下所示:
在一個m文件中寫多個函數(shù),每個函數(shù)都以function開始,結束可以帶end,也可以不帶(這種情況下,出現(xiàn)另一個function或者到達文件結尾表明前一個function結束)。 第一個函數(shù)作為主函數(shù),可以從該m文件外部調(diào)用,其它函數(shù)都是局部函數(shù),只能被m文
>> clear
1、打開電腦里的MATLAB軟件。 2、左上角【新建】一個m文件 3、在m文件里,寫【函數(shù)文件】1:function2:返回值,多個用[A,B]--可無3: 函數(shù)名4: 參數(shù)--可無5:函數(shù)體6:結束標志。 4、【調(diào)用函數(shù)】1:返回值2:函數(shù)調(diào)用。 5、最后函數(shù)結果如下。
>> a = eg_sum(10)
果你輸入的是一個向量,同樣也會輸出一個向量的。這個同m文件里面編程是一樣的。 MATLAB Function里面只能填寫一個函數(shù)名稱,無法編寫m文件。 如果你需要編寫m文件的話,可以使用Embedded MATLAB Function ,我想你說的是這個。 如果要輸出多個
運行結果: a = 55
1、首先,打開matlab的程序軟件。 2、接著,我們新建一個函數(shù)文件。 3、定義一個函數(shù),通過function函數(shù),做一個簡單求冪次運算的函數(shù)。 4、將編寫的函數(shù)文件保存,使其命名的函數(shù)名字與文件保存的名字保持一致。 5、保存之后,我們就可以調(diào)用這
函數(shù)名不一定要與函數(shù)文件名一致,只要知道調(diào)用函數(shù)時是通過函數(shù)文件名調(diào)用的這點即可!比如下圖所示,即使文件名仍然是eg_sum,但可以修改函數(shù)名為:my_sum 調(diào)用時用文件名調(diào)用就好,如下所示:
1、函數(shù)文件+調(diào)用函數(shù)文件:定義多個M文件: % 調(diào)用函數(shù)文件:myfile.m clear clc for t=1:10 y=mylfg(t); fprintf(‘M^(1/3)=%6.4fn’,t,y); end %自定義函數(shù)文件: mylfg.m function y=mylfg(x) %注意:函數(shù)名(mylfg)必須與文件名(mylfg.m)一
>> b = eg_sum(10)
Matlab自定義函數(shù)的六種方法 n1、函數(shù)文件+調(diào)用函數(shù)(命令)文件:需單獨定義一個自定義函數(shù)的M文件; n2、函數(shù)文件+子函數(shù):定義一個具有多個自定義函數(shù)的M文件; n3、Inline:無需M文件,直接定義; n4、匿名函數(shù); n5、Syms+subs:無需M文件,
運行結果: b = 55
函數(shù)rcosfir的參數(shù)n_T和rate可以聯(lián)合定義升余弦濾波系數(shù)的階數(shù)。 Matlab函數(shù)大全 信源函數(shù) randerr 產(chǎn)生比特誤差樣本 randint 產(chǎn)生均勻分布的隨機整數(shù)矩陣 randsrc 根據(jù)給定的數(shù)字表產(chǎn)生隨機矩陣 wgn 產(chǎn)生高斯白噪聲 信號分析函數(shù) biterr 計算比
擴展閱讀,以下內(nèi)容您可能還感興趣。
matlab怎么在一個m文件中寫多個函數(shù)?
在一個m文件中寫多個函數(shù),每個函數(shù)都以function開始,結束可以帶end,也可以不帶(這種情況下,出現(xiàn)另一個function或者到達文件結尾表明前一個function結束)。
第一個函數(shù)作為主函數(shù),可以從該m文件外部調(diào)用,其它函數(shù)都是局部函數(shù),只能被m文件中的函數(shù)調(diào)用。主函數(shù)命名最好和m文件名相同,如果不同,則調(diào)用時應該使用m文件名(不帶擴展名)。追問也就是說,matlab,沒有可能像cpp一樣,include 一下然后可能調(diào)用一串函數(shù)的做法。追答C/C++中include只是添加函數(shù)的聲明,讓程序知道有那些函數(shù)可用。
MATLAB中不需要聲明,只要你的函數(shù)文件在當前文件夾或者在搜索路徑(path)中,就可以直接調(diào)用。
MATLAB中如何定義單位脈沖函數(shù)?
1、打開電腦里的MATLAB軟件。
2、左上角【新建】一個m文件
3、在m文件里,寫【函數(shù)文件】1:function2:返回值,多個用[A,B]--可無3: 函數(shù)名4: 參數(shù)--可無5:函數(shù)體6:結束標志。
4、【調(diào)用函數(shù)】1:返回值2:函數(shù)調(diào)用。
5、最后函數(shù)結果如下。
function 在matlab中怎么定義矩陣
果你輸入的是一個向量,同樣也會輸出一個向量的。這個同m文件里面編程是一樣的。
MATLAB Function里面只能填寫一個函數(shù)名稱,無法編寫m文件。
如果你需要編寫m文件的話,可以使用Embedded MATLAB Function ,我想你說的是這個。
如果要輸出多個數(shù)據(jù),可以這樣寫:
function y = fcn(u)
y=[y1 y2 y3];
這樣就可以當成一個向量輸出了。外面只有一個輸出端口,里面的數(shù)據(jù)是向量形式。
如果這樣寫:
function [y1,y2,y3] = fcn(u)
那么就會有三個輸出端口。
PS:我再說一遍,MATLAB Function是不能編寫m文件的,只有Embedded MATLAB Function才行,你定義y為2*100的矩陣,類似于y = [1 2 3 4;5 6 7 8];這樣就行了。輸出就是一個矩陣。
Matlab如何在定義函數(shù)過程中使用外部的變量?
1、首先,打開matlab的程序軟件。
2、接著,我們新建一個函數(shù)文件。
3、定義一個函數(shù),通過function函數(shù),做一個簡單求冪次運算的函數(shù)。
4、將編寫的函數(shù)文件保存,使其命名的函數(shù)名字與文件保存的名字保持一致。
5、保存之后,我們就可以調(diào)用這個定義的冪次函數(shù),求4的8次冪和2的3次冪。
注意事項:
MATLAB可以進行矩陣運算、繪制函數(shù)和數(shù)據(jù)、實現(xiàn)算法、創(chuàng)建用戶界面、連接其他編程語言的程序等,主要應用于工程計算、控制設計、信號處理與通訊、圖像處理、信號檢測、金融建模設計與分析等領域。
怎么在matlab自定義函數(shù)中再調(diào)用一個自定義函數(shù)?
1、函數(shù)文件+調(diào)用函數(shù)文件:定義多個M文件:
% 調(diào)用函數(shù)文件:myfile.m
clear
clc
for t=1:10
y=mylfg(t);
fprintf(‘M^(1/3)=%6.4f\n’,t,y);
end
%自定義函數(shù)文件: mylfg.m
function y=mylfg(x) %注意:函數(shù)名(mylfg)必須與文件名(mylfg.m)一致
Y=x^(1/3);
注:這種方法要求自定義函數(shù)必須單獨寫一個M文件,不能與調(diào)用的命令文件寫在同一個M文件中。
2、函數(shù)文件+子函數(shù):定義一個具有多個子函數(shù)的M文件
%命令文件:funtry2.m
function []=funtry2()
for t=1:10
y=lfg2(t)
fprintf(‘M^(1/3)=%6.4f\n’);
End
function y=lfg2(x)
Y= x^(1/3);
%注:自定義函數(shù)文件funtry2.m中可以定義多個子函數(shù)function。子函數(shù)lfg2只能被主函數(shù)和主函數(shù)中的其他子函數(shù)調(diào)用。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com