function用來定義函數(shù),一般一個(gè)函數(shù)放在一個(gè).m文件里。舉個(gè)簡單的例子建立一個(gè)myfunction.m,然后在文件中寫。 function y=myfunction(a,b) 其中a,b是輸入函數(shù)的參數(shù),y是函數(shù)返回的值。當(dāng)需要返回多個(gè)值時(shí),可以將y看作一個(gè)數(shù)組,或者直接將函
matlab數(shù)據(jù)處理能力相當(dāng)?shù)膹?qiáng)大!雖然matlab自身集成了很多的函數(shù),但是有些功能還是需要通過function函數(shù)自己定義函數(shù),來實(shí)現(xiàn)自己想要的功能。
材料/工具
matlab
一種方法是在 代碼窗口下直接點(diǎn)擊‘運(yùn)行’(就是代碼窗口中一個(gè)綠色的向右的按鈕,或者直接按F5也可以)按鈕,但是這種方法要求所運(yùn)行的函數(shù)最好沒有輸入?yún)?shù)。 另一種方法是在命令窗口中運(yùn)行的。例如: A=magic(a);中magic就是一個(gè)函數(shù),a是需要
方法
打開matlab。
1、你可以通過在命令欄中輸入function,點(diǎn)擊右鍵或者按F1來查詢function函數(shù)的幫助文檔。 2、在幫助文檔中對(duì)function函數(shù)進(jìn)行了詳細(xì)的功能描述,使用方法的介紹。其基本形式為:function [ ]= fun( ); 即為:[輸出]= fun(輸入)。 3、點(diǎn)擊軟件左
你可以通過在命令欄中輸入function,點(diǎn)擊右鍵或者按F1來查詢function函數(shù)的幫助文檔。
M函數(shù)除了直接用函數(shù)名調(diào)用之外,也可以進(jìn)行參數(shù)傳遞,使得Matlab應(yīng)用更加方便。 M函數(shù)文件以function開頭,格式為 function 輸出變量 = 函數(shù)名稱(輸入變量) 語句; 例如: %eg_1f.m function s=f(m) s=0 for n=1:m s=s+1/n/n; end 保
在幫助文檔中對(duì)function函數(shù)進(jìn)行了詳細(xì)的功能描述,使用方法的介紹。其基本形式為:function [ ]= fun( ); 即為:[輸出]= fun(輸入)。
function的用法是 1新建一個(gè)m文件 function f=f(x) f(1)=x^3+3*x+4;%f(1)表示第一個(gè)方程,如果還有可以追加f(2),一次類推,當(dāng)然只有一個(gè)時(shí)f(1)可以簡寫成f。 2將其保存為f_x.m 2在matlab命令窗口中直接調(diào)用f_x(0)就可以了 >> f_x(0
點(diǎn)擊軟件左上角新建,新建一個(gè).m文件或者函數(shù)都可以進(jìn)行編輯。
clear all clc dt=0.01; t=[0:dt:1.5]; w=4*sqrt(3);y=sqrt(3)/2*exp(-4*t).*sin(w*t+pi/3); Dy=diff(y)/dt; subplot(2,1,1),plot(t,y), grid on; % 繪制曲線并加上坐標(biāo)網(wǎng)格title('繪圖示例'),xlabel('時(shí)間 t'),ylabel('y(t)') % 加標(biāo)注 % 求導(dǎo)
其基本形式如圖所示:第一行定義函數(shù)輸入輸出;第二三行百分號(hào)部分是注釋部分,這里注意一定要寫,方便以后查看該函數(shù)。第四五行編寫函數(shù)的具體內(nèi)容。
用.m文件來定義就行了: 比如:function y=num(a,b); y=a+b; 定義好后,保存為mum_1.m文件 比如你要計(jì)算2+3;就直接在command window里面輸入num_1(2+3)=就行了;]
這里舉一個(gè)簡單的求和例子。代碼如下:
1.新建一個(gè)m文件,把function函數(shù)復(fù)制進(jìn)去;然后保存(名稱應(yīng)該是自動(dòng)生成的,即為sinh.m,不過最好不要用和系統(tǒng)中的文件一樣的名稱,可以先help查看一下matlab是否有和sinh重復(fù)的名稱,若有的話,得把function函數(shù)改個(gè)名稱),保存的地址為當(dāng)前
function [ c] = untitled( a ,b )%UNTITLED 求和% 求a+b的和
Matlab自定義函數(shù)的六種方法 n1、函數(shù)文件+調(diào)用函數(shù)(命令)文件:需單獨(dú)定義一個(gè)自定義函數(shù)的M文件; n2、函數(shù)文件+子函數(shù):定義一個(gè)具有多個(gè)自定義函數(shù)的M文件; n3、Inline:無需M文件,直接定義; n4、匿名函數(shù); n5、Syms+subs:無需M文件,
c = a+b;
Matlab自定義函數(shù)的六種方法 n1、函數(shù)文件+調(diào)用函數(shù)(命令)文件:需單獨(dú)定義一個(gè)自定義函數(shù)的M文件; n2、函數(shù)文件+子函數(shù):定義一個(gè)具有多個(gè)自定義函數(shù)的M文件; n3、Inline:無需M文件,直接定義; n4、匿名函數(shù); n5、Syms+subs:無需M文件,
end
點(diǎn)擊軟件左上角保存,注意文件名一定要和函數(shù)名字一樣。
function sumab = addfun(a,b)% a和b為輸入變量;sumab為對(duì)變量操作后得到的結(jié)果% 例如對(duì)輸入變量做加法:sumcal = a + b;end
你可直接在命令函調(diào)用,也可在m文件或者另一個(gè)function函數(shù)中進(jìn)行調(diào)用。
個(gè)人感覺:如果要求一個(gè)函數(shù)在區(qū)間[a,b]上的積分,不應(yīng)該這樣定義函數(shù) 你是有什么特殊要求? 應(yīng)該是在函數(shù)體里定義函數(shù),然后在主程序里調(diào)用函數(shù) 例如: 函數(shù): function y=fun(x) y=2.^x; 保存后 在主程序里調(diào)用: aa=quadl('fun',a,b);才對(duì)呀
你可以在右側(cè)文件夾中點(diǎn)擊你的函數(shù)文件,在函數(shù)詳情中可以看到你的函數(shù)注釋詳情,方便以后函數(shù)的使用。
在matlab函數(shù)中是可以使用clear的。但是要注意的是你必須要搞清楚clear的是哪個(gè)變量!
擴(kuò)展閱讀,以下內(nèi)容您可能還感興趣。
matlab自定義函數(shù)function中輸入?yún)?shù)中有函數(shù)怎么辦?
Matlab自定義函數(shù)的六種方法
n1、函數(shù)文件+調(diào)用函數(shù)(命令)文件:需單獨(dú)定義一個(gè)自定義函數(shù)的M文件;
n2、函數(shù)文件+子函數(shù):定義一個(gè)具有多個(gè)自定義函數(shù)的M文件;
n3、Inline:無需M文件,直接定義;
n4、匿名函數(shù);
n5、Syms+subs:無需M文件,直接定義;
n6、字符串+subs:無需M文件,直接定義。
------------
1、函數(shù)文件+調(diào)用函數(shù)文件:定義多個(gè)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ù)必須單獨(dú)寫一個(gè)M文件,不能與調(diào)用的命令文件寫在同一個(gè)M文件中。
2、函數(shù)文件+子函數(shù):定義一個(gè)具有多個(gè)子函數(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中可以定義多個(gè)子函數(shù)function。子函數(shù)lfg2只能被主函數(shù)和主函數(shù)中的其他子函數(shù)調(diào)用。
注意:函數(shù)定義格式
在matlab中應(yīng)該做成M文件,文件名要和你文件里的function后面的函數(shù)名一致,在File新建一個(gè)M-file 在M-file里編輯函數(shù),其格式為:
function [輸出實(shí)參表]=函數(shù)名(輸入實(shí)參數(shù))
注釋部分
函數(shù)體語句
return語句(可以有可以沒有)
如果是文件中的子函數(shù),則可以任意取名,也可以在同一個(gè)文件中定義多個(gè)子函數(shù):
MATLAB中函數(shù)function是怎么用的
function sumab = addfun(a,b)
% a和b為輸入變量;sumab為對(duì)變量操作后得到的結(jié)果
% 例如對(duì)輸入變量做加法:
sumcal = a + b;
end
matlab里面的function的輸入?yún)?shù)有函數(shù)怎么調(diào)用?
個(gè)人感覺:如果要求一個(gè)函數(shù)在區(qū)間[a,b]上的積分,不應(yīng)該這樣定義函數(shù)
你是有什么特殊要求?
應(yīng)該是在函數(shù)體里定義函數(shù),然后在主程序里調(diào)用函數(shù)
例如:
函數(shù):
function y=fun(x)
y=2.^x;
保存后
在主程序里調(diào)用:
aa=quadl('fun',a,b);才對(duì)呀。
怎么感覺怪怪的,可能編程思想不一樣。追問其實(shí)我那樣調(diào)用好像是沒錯(cuò)的;
沒錯(cuò)我的求積分函數(shù)確實(shí)很特殊,是高斯勒讓德積分求積分值~~追答我就說嘛,我也沒說錯(cuò),函數(shù)是可以任意定義的
可是你的函數(shù)體里并沒有定義輸出宗量的形式呀,就是說你定義的函數(shù)是什么形式呢?
像你說的這樣,貌似主程序的調(diào)用也沒什么大問題
要不把你的問題整個(gè)拿出來吧。
matlab中function里如何使用clear
在matlab函數(shù)中是可以使用clear的。但是要注意的是你必須要搞清楚clear的是哪個(gè)變量!更多追問追答追問我在函數(shù)里使用了clear i;以后,就報(bào)錯(cuò)
Reference to a cleared variable i.追答這是你的程序程序還在使用i,你把i給刪除了!追問程序里之前有把i當(dāng)做一個(gè)變量用,后來想把i當(dāng)做復(fù)數(shù)用,就直接clear i;這樣難道不對(duì)嗎追答那你的變量取個(gè)其他名字吧,為什么非用i呢?復(fù)數(shù)也可以用j的!追問因?yàn)橐婚_始沒有編成函數(shù)的形式,用了很多i和j,如果要改的話,得改一堆,還很容易出錯(cuò),有沒有什么方法就讓我在需要的時(shí)候把i清空呢追答你使用clear i就行了啊,出了什么問題???
MATLAB一個(gè)M文件的function返回值怎么在另一個(gè)M文件中的函數(shù)調(diào)用這個(gè)返回值
新建.m文件
舉個(gè)例子: 寫一個(gè)子函數(shù)作為調(diào)用使用
function sum = qiuhe(x,y)
a = x;
b = y;
sum= a+b;
點(diǎn)擊保存,就會(huì)自動(dòng)保存為qiuhe.m的文件
在另外一個(gè)函數(shù)中調(diào)用
......
c= qiuhe(x,y);
...
如果是多個(gè)返回值: function [sum,a,b,c] = qiuhe(x,y,..)
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com