matlab基礎之函式篇

2021-08-20 01:32:57 字數 2429 閱讀 3578

(1)函式檔案+呼叫命令檔案

說明:需單獨定義乙個自定義函式的m檔案

例如:

function

y= test_m

(a, b)

y = a^4 + rand

(3,4)*(b);

end

commond window:

>> test_m(1,2)

ans =2.9143 1.2838 2.5844 1.0714

1.9708 1.8435 2.9190 2.6983

2.6006 2.8315 2.3115 2.8680

(2)函式檔案+子函式

說明:說明:定義乙個具有多個子函式的m檔案

例如:

function

y= test_m

(a, b,c,d) %主函式

x = a^4 + 4*(b);

y=x+test2(c)+test3(d);

function

y=test2

(c) %子函式

y = 3*(c)+10;

function

y=test3

(d) %子函式

y = 2*(d)+5;

commond window:

>> test_m(1,2,3,4)

ans =41

(3)inline:無需m檔案,直接定義

說明:inline命令用來定義乙個內聯函式:f=inline(『函式表示式』, 『變數1』,』變數2』,……)。

呼叫方式:y=f(數值列表) 。

注意:代入的數值列表順序應與inline()定義的變數名順序一致。

例如:

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

>> z=f(1,2)

z = 3

特點是,它是基於matlab的數值運算核心的,所以它的運算速度較快,程式效率更高。

缺點是,該方法只能對數值進行代入,不支援符號代入,且對定義後的函式不能進行求導等符號運算。

(4)syms+subs: 無需m檔案,直接定義

說明:用syms定義乙個符號表示式,用subs呼叫,用法:

symsfx

%定義符號

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

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

例如:

>> syms f x

>> f=x^2+x-1;

>> subs(f,'x','y')

ans =

y^2 + y - 1

>> subs(f,x,'y')

ans =

y^2 + y - 1

特點:可以用符號進行替換

缺點:由於使用符號運算核心,運算速度會大大降低。

注:對於在syms中已經定義過的符號變數,在subs中進行替代時,單引號可以省略。但是,如果在syms後又被重新定義為其他型別,則必須加單引號,否則不可替換。

(5)字串+subs

說明:無需m檔案,直接定義乙個字串,用subs命令呼叫。

例如:

>> f1='a+10';       %定義字串

>> z1=subs(f1,'a',5)

z1 =

15

優點:占用記憶體最少,定義格式方面自由。

缺點:無法對字元進行符號轉化。當所要替代的符號在呼叫前都已經有了數值定義,則可以直接呼叫。

(6)匿名函式

說明:使用matlab函式控制代碼操作符@,可以定義指向matlab內建函式和使用者自定義函式的函式控制代碼,函式控制代碼也可以像函式一樣的使用。

例如:

>> x=-10

:0.001

:10;

>> y=@exp

y = 包含以下值的 function_handle:

@exp

>> plot(y(x))

也可以定義二重匿名函式,例如:

>> f=@(x,y)@(a,b)x+y+a-b

f = @(x,y)@(a,b)x+y+a-b

(7)直接通過@符號定義

例如:

>> f=@(x,y)(x^2+9*y);

>> f(3,3)

ans =

36

(8)matlab函式總結

MATLAB 學習筆記 函式篇

tf函式用來建立實部或複數傳遞函式模型或將狀態方程 或零級增益模型轉化成傳遞函式形式。c2d函式離散化,把傳遞函式離散化,將s域的表示式轉化成z域的表示式,s 0對應z 1。dsys c2d sys,ts,method 傳函離散 num,den tfdata dsys,v 離散後提取分子分母,加上 ...

Matlab之統計函式

年紀越大發現記憶越差了,看來好記憶確實不如爛筆頭。用matlab已經有些年了,但是一些常用函式時間長了不用還是記不住。於是乎決定花點心思整理下 基本統計函式 均值 mean x 注意預設是對列求均值 mean x,2 對行求均值 方差 tabulate x 統計頻數 由於本人職業所需,經常需要統計考...

C C SQLite 之基礎篇

c 使用sqlite步驟及示例 開發環境 windows xp vs2005。開發語言 c sqlite版本為sqlite 3.7.13,相關檔案如下。sqlite dll win32 x86 3071300.zip 包含sqlite3.def sqlite3.dll檔案。sqlite amalga...