function用來定義函數,一般一個函數放在一個.m文件裏。舉個簡單的例子建立一個myfunction.m,然後在文件中寫。 function y=myfunction(a,b) 其中a,b是輸入函數的參數,y是函數返回的值。當需要返回多個值時,可以將y看作一個數組,或者直接將函
matlab數據處理能力相當的強大!雖然matlab自身集成了很多的函數,但是有些功能還是需要通過function函數自己定義函數,來實現自己想要的功能。
材料/工具
matlab
一種方法是在 代碼窗口下直接點擊‘運行’(就是代碼窗口中一個綠色的向右的按鈕,或者直接按F5也可以)按鈕,但是這種方法要求所運行的函數最好沒有輸入參數。 另一種方法是在命令窗口中運行的。例如: A=magic(a);中magic就是一個函數,a是需要
方法
打開matlab。
1、你可以通過在命令欄中輸入function,點擊右鍵或者按F1來查詢function函數的幫助文檔。 2、在幫助文檔中對function函數進行了詳細的功能描述,使用方法的介紹。其基本形式為:function [ ]= fun( ); 即為:[輸出]= fun(輸入)。 3、點擊軟件左
你可以通過在命令欄中輸入function,點擊右鍵或者按F1來查詢function函數的幫助文檔。
M函數除了直接用函數名調用之外,也可以進行參數傳遞,使得Matlab應用更加方便。 M函數文件以function開頭,格式為 function 輸出變量 = 函數名稱(輸入變量) 語句; 例如: %eg_1f.m function s=f(m) s=0 for n=1:m s=s+1/n/n; end 保
在幫助文檔中對function函數進行了詳細的功能描述,使用方法的介紹。其基本形式為:function [ ]= fun( ); 即為:[輸出]= fun(輸入)。
function的用法是 1新建一個m文件 function f=f(x) f(1)=x^3+3*x+4;%f(1)表示第一個方程,如果還有可以追加f(2),一次類推,當然只有一個時f(1)可以簡寫成f。 2將其保存為f_x.m 2在matlab命令窗口中直接調用f_x(0)就可以了 >> f_x(0
點擊軟件左上角新建,新建一個.m文件或者函數都可以進行編輯。
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; % 繪製曲線並加上座標網格title('繪圖示例'),xlabel('時間 t'),ylabel('y(t)') % 加標註 % 求導
其基本形式如圖所示:第一行定義函數輸入輸出;第二三行百分號部分是註釋部分,這裏注意一定要寫,方便以後查看該函數。第四五行編寫函數的具體內容。
用.m文件來定義就行了: 比如:function y=num(a,b); y=a+b; 定義好後,保存為mum_1.m文件 比如你要計算2+3;就直接在command window裏面輸入num_1(2+3)=就行了;]
這裏舉一個簡單的求和例子。代碼如下:
1.新建一個m文件,把function函數複製進去;然後保存(名稱應該是自動生成的,即為sinh.m,不過最好不要用和系統中的文件一樣的名稱,可以先help查看一下matlab是否有和sinh重複的名稱,若有的話,得把function函數改個名稱),保存的地址為當前
function [ c] = untitled( a ,b )%UNTITLED 求和% 求a+b的和
Matlab自定義函數的六種方法 n1、函數文件+調用函數(命令)文件:需單獨定義一個自定義函數的M文件; n2、函數文件+子函數:定義一個具有多個自定義函數的M文件; n3、Inline:無需M文件,直接定義; n4、匿名函數; n5、Syms+subs:無需M文件,
c = a+b;
Matlab自定義函數的六種方法 n1、函數文件+調用函數(命令)文件:需單獨定義一個自定義函數的M文件; n2、函數文件+子函數:定義一個具有多個自定義函數的M文件; n3、Inline:無需M文件,直接定義; n4、匿名函數; n5、Syms+subs:無需M文件,
end
點擊軟件左上角保存,注意文件名一定要和函數名字一樣。
function sumab = addfun(a,b)% a和b為輸入變量;sumab為對變量操作後得到的結果% 例如對輸入變量做加法:sumcal = a + b;end
你可直接在命令函調用,也可在m文件或者另一個function函數中進行調用。
個人感覺:如果要求一個函數在區間[a,b]上的積分,不應該這樣定義函數 你是有什麼特殊要求? 應該是在函數體裏定義函數,然後在主程序裏調用函數 例如: 函數: function y=fun(x) y=2.^x; 保存後 在主程序裏調用: aa=quadl('fun',a,b);才對呀
你可以在右側文件夾中點擊你的函數文件,在函數詳情中可以看到你的函數註釋詳情,方便以後函數的使用。
在matlab函數中是可以使用clear的。但是要注意的是你必須要搞清楚clear的是哪個變量!
擴展閲讀,以下內容您可能還感興趣。
matlab自定義函數function中輸入參數中有函數怎麼辦?
Matlab自定義函數的六種方法
n1、函數文件+調用函數(命令)文件:需單獨定義一個自定義函數的M文件;
n2、函數文件+子函數:定義一個具有多個自定義函數的M文件;
n3、Inline:無需M文件,直接定義;
n4、匿名函數;
n5、Syms+subs:無需M文件,直接定義;
n6、字符串+subs:無需M文件,直接定義。
------------
1、函數文件+調用函數文件:定義多個M文件
% 調用函數文件:myfile.m
clear
clc
for t=1:10
y=mylfg(t);
fprintf(‘M^(1/3)=%6.4f\n’,t,y);
end
%自定義函數文件: mylfg.m
function y=mylfg(x) %注意:函數名(mylfg)必須與文件名(mylfg.m)一致
Y=x^(1/3);
注:這種方法要求自定義函數必須單獨寫一個M文件,不能與調用的命令文件寫在同一個M文件中。
2、函數文件+子函數:定義一個具有多個子函數的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);
%注:自定義函數文件funtry2.m中可以定義多個子函數function。子函數lfg2只能被主函數和主函數中的其他子函數調用。
注意:函數定義格式
在matlab中應該做成M文件,文件名要和你文件裏的function後面的函數名一致,在File新建一個M-file 在M-file裏編輯函數,其格式為:
function [輸出實參表]=函數名(輸入實參數)
註釋部分
函數體語句
return語句(可以有可以沒有)
如果是文件中的子函數,則可以任意取名,也可以在同一個文件中定義多個子函數:
MATLAB中函數function是怎麼用的
function sumab = addfun(a,b)
% a和b為輸入變量;sumab為對變量操作後得到的結果
% 例如對輸入變量做加法:
sumcal = a + b;
end
matlab裏面的function的輸入參數有函數怎麼調用?
個人感覺:如果要求一個函數在區間[a,b]上的積分,不應該這樣定義函數
你是有什麼特殊要求?
應該是在函數體裏定義函數,然後在主程序裏調用函數
例如:
函數:
function y=fun(x)
y=2.^x;
保存後
在主程序裏調用:
aa=quadl('fun',a,b);才對呀。
怎麼感覺怪怪的,可能編程思想不一樣。追問其實我那樣調用好像是沒錯的;
沒錯我的求積分函數確實很特殊,是高斯勒讓德積分求積分值~~追答我就説嘛,我也沒説錯,函數是可以任意定義的
可是你的函數體裏並沒有定義輸出宗量的形式呀,就是説你定義的函數是什麼形式呢?
像你説的這樣,貌似主程序的調用也沒什麼大問題
要不把你的問題整個拿出來吧。
matlab中function裏如何使用clear
在matlab函數中是可以使用clear的。但是要注意的是你必須要搞清楚clear的是哪個變量!更多追問追答追問我在函數裏使用了clear i;以後,就報錯
Reference to a cleared variable i.追答這是你的程序程序還在使用i,你把i給刪除了!追問程序裏之前有把i當做一個變量用,後來想把i當做複數用,就直接clear i;這樣難道不對嗎追答那你的變量取個其他名字吧,為什麼非用i呢?複數也可以用j的!追問因為一開始沒有編成函數的形式,用了很多i和j,如果要改的話,得改一堆,還很容易出錯,有沒有什麼方法就讓我在需要的時候把i清空呢追答你使用clear i就行了啊,出了什麼問題啊?
MATLAB一個M文件的function返回值怎麼在另一個M文件中的函數調用這個返回值
新建.m文件
舉個例子: 寫一個子函數作為調用使用
function sum = qiuhe(x,y)
a = x;
b = y;
sum= a+b;
點擊保存,就會自動保存為qiuhe.m的文件
在另外一個函數中調用
......
c= qiuhe(x,y);
...
如果是多個返回值: function [sum,a,b,c] = qiuhe(x,y,..)