(1)函式檔案+呼叫命令檔案
說明:需單獨定義乙個自定義函式的m檔案
例如:
commond window:function
y= test_m
(a, b)
y = a^4 + rand
(3,4)*(b);
end
(2)函式檔案+子函式>> 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
說明:說明:定義乙個具有多個子函式的m檔案
例如:
commond window: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;
(3)inline:無需m檔案,直接定義>> test_m(1,2,3,4)
ans =41
說明:inline命令用來定義乙個內聯函式:f=inline(『函式表示式』, 『變數1』,』變數2』,……)。
呼叫方式:y=f(數值列表) 。
注意:代入的數值列表順序應與inline()定義的變數名順序一致。例如:
特點是,它是基於matlab的數值運算核心的,所以它的運算速度較快,程式效率更高。>> f=inline('x^2+y','x','y');
>> z=f(1,2)
z = 3
缺點是,該方法只能對數值進行代入,不支援符號代入,且對定義後的函式不能進行求導等符號運算。
(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))
(7)直接通過@符號定義>> f=@(x,y)@(a,b)x+y+a-b
f = @(x,y)@(a,b)x+y+a-b
例如:
(8)matlab函式總結>> f=@(x,y)(x^2+9*y);
>> f(3,3)
ans =
36
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...