當前位置:成語大全網 - 書法字典 - 關於MatLab函數

關於MatLab函數

自定義功能的方法:

m文件函數(m文件函數)

在線功能(在線功能)

匿名函數(匿名函數)

1.m文件功能

模型

函數c = myadd(a,b)

%妳可以在這裏寫函數的指令,從%開始。

%在工作區中,help myadd將在此處顯示說明。

c = a+b;

不需要%end%

函數的第壹行告訴Matlab這是壹個函數,a和b是輸入,c是輸出,myadd是函數名。m文件定義的函數必須保存為函數名。在上面的示例中,該函數應保存為myadd.m .要使用myadd函數,該函數必須位於Matlab的搜索路徑中。

通話模式:

在Matlab命令後輸入。

a = 1;b = 2;

c =年新增(a,b)

關於M文件的定義函數有很多解釋,暫時省略。。。

2.在線功能(在線功能)

通常作為參數傳遞給另壹個函數。fminsearch和lsqcurvefit等函數需要將函數作為參數。

在線函數通過字符串表達式創建函數,例如:

f=inline('x.^2','x');

函數f(x)= x ^ 2被創建。要計算f(3),只需在工作區中輸入f(3)。f(【2 3 4】)計算x=2 3 4時的值。

f =內聯(‘x+y’,‘x’,‘y’)

創建壹個二元函數f(x,y)= x+y,工作區輸入f(2,3)計算2+3,它相當於Fe val _ r(f,2,3)。

3.匿名函數(匿名函數)

匿名函數使用函數句柄來表示匿名函數,匿名函數的定義如下

函數句柄= @(變量名)函數表達式

例如:

x.^2

定義函數f(x)= x ^ 2,f(2)計算x=2處的值。

匿名函數可以調用Matlab函數或使用工作空間中存在的變量,例如

a = 2;

x.^2+a

f(2)%是參照變量a計算的。

a = 0;

f(2)%仍然指a=2。

匿名函數也可以由Matlab的內置函數或M文件函數創建,例如

f = @ sin % f(x)= sin(x)

f(π/2)% sin(π/2)

函數(f)%查看函數信息

使用單元數組,您可以創建多個函數的句柄,例如

f={@sin @cos}

f { 1 }(pi/2)%計算sin(pi/2)

f { 2 }(pi)%計算cos(pi)

函數句柄的另壹個重要特性是它們可以用來表示子函數、私有函數和嵌套函數。

Matlab 7以後建議用匿名函數代替在線函數!!!

在創建匿名函數時,Matlab記錄了關於該函數的信息。當用句柄調用函數時,Matlab停止搜索並立即執行函數,這大大提高了效率。

Matlab自定義函數的幾種方法

1,函數文件+調用命令文件:自定義函數的M文件需要單獨定義;

2.函數文件+子函數:用多個自定義函數定義壹個M文件;

3.Inline:直接定義,沒有M文件;

4.匿名函數;

5.Syms+subs:沒有M文件直接定義;

6.String +subs:直接定義,沒有M文件;

7、直接通過@符號定義。

1,函數文件+調用函數文件:定義多個m文件:

%調用函數文件:myfile.m

清楚的

色度控制中心

對於t=1:10

y = my LFG(t);

fprintf('m^(1/3)=%6.4f\n',t,y);

結束

%自定義函數文件:mylfg.m

函數y = mylfg(x)%註意:函數名(my LFG)必須與文件名(mylfg.m)壹致。

y=x^(1/3);

註意:該方法要求用戶定義的函數必須寫在單獨的M文件中,該文件不能與被調用的命令文件寫在同壹個M文件中。

2.函數文件+子函數:定義壹個具有多個子函數的M文件。

%命令文件:funtry2.m

函數【】=funtry2()

對於t=1:10

y = LFG 2(t)

fprintf('m^(1/3)=%6.4f\n');

結束

函數y = LFG 2(x)

y = x^(1/3);

%註意:在自定義函數文件funtry2.m中可以定義多個子函數。子函數lfg2只能由主函數和主函數中的其他子函數調用。

3.Inline:直接定義,沒有M文件;

%inline命令用於定義內聯函數:f = inline(‘函數表達式‘,‘變量1‘,‘變量2‘,...).

調用方法:y=f(值列表)%註意:被替換的值列表的順序應該與inline()定義的變量名的順序相同。

例如:

f=inline('x^2+y','x','y');

z = f(2.3)

Ans=7

註意:這個函數是通過調用內部函數來定義的。其特點是基於Matlab的數值運算內核,運算速度更快,程序效率更高。缺點是這種方法只能替換數值,但不支持符號替換,並且不能對定義的函數進行求導等符號運算。

示例:

清楚的

色度控制中心

f='x^2';

syms x g;

g=x^2;

h=inline('x^2','x');

4.匿名函數

使用matlab函數句柄運算符@,可以定義指向matlab內置函數和用戶自定義函數的函數句柄,函數句柄也可以像函數壹樣使用。例如:

& gt& gtx =-pi:0.1:pi;

& gt& gtfh={@cos,@ sin };

fh =

@cos @sin

& gt& gt繪圖(FH { 2 }(x))

5.Syms+subs:沒有M文件直接定義;

用syms定義壹個符號表達式,並用subs調用它:

符號f x%定義符號

f=1/(1+x^2);%定義壹個符號表達式

subs(f,‘x‘x‘,代替x的數值或符號)

註意:對於已經在syms中定義的符號變量,在subs中替換時可以省略單引號。但是,如果在syms之後將其重新定義為另壹種類型,則必須用單引號括起來,否則無法替換。

這種函數定義方法的特點是可以用符號代替。

符號f x

f=1/(1+x^2);

潛艇(f,'x','y^2')

ans=

1/(1+(y^2)^2)

註意:這種方法的缺點是由於使用了符號運算內核,運算速度會大大降低。

6.String +subs:直接定義,沒有M文件;

直接定義壹個字符串並用subs命令調用它。例如:

f =‘1/(1+x ^ 2)‘%定義字符串。

z = subs(f,‘x‘,2)

g=subs(f,'x','y^2')

註意:優點是它占用的內存最少,並且可以自由定義格式。

缺點是無法將字符轉換為符號。

當所有要替換的符號在調用前都有數字定義時,可以直接調用:subs(f)。例如:

f='x^2*y';

x = 2;y = 3;

subs(f)

ans=12

7、直接通過@符號定義。

例子如下:

& gt& gtf=@(x,y)(x.^2-sin(y)

f =

@(x,y)(x.^2-sin(y)

& gt& gtf(2,3)

ans =

3.8589