MATLAB
MATLAB是matrix&laboratory兩個詞的組合,意為矩陣工廠(矩陣實驗室)。是由美國mathworks公司發(fā)布的主要面對科學計算、可視化以及交互式程序設計的高科技計算環(huán)境。它將數(shù)值分析、矩陣計算、科學數(shù)據(jù)可視化以及非線性動態(tài)系統(tǒng)的建模和仿真等諸多強大功能集成在一個易于使用的視窗環(huán)境中,為科學研究、工程設計以及必須進行有效數(shù)值計算的眾多科學領(lǐng)域提供了一種全面的解決方案,并在很大程度上擺脫了傳統(tǒng)非交互式程序設計語言(如C、Fortran)的編輯模式,代表了當今國際科學計算軟件的先進水平。
MATLAB和Mathematica、Maple并稱為三大數(shù)學軟件。它在數(shù)學類科技應用軟件中在數(shù)值計算方面首屈一指。MATLAB可以進行矩陣運算、繪制函數(shù)和數(shù)據(jù)、實現(xiàn)算法、創(chuàng)建用戶界面、連接其他編程語言的程序等,主要應用于工程計算、控制設計、信號處理與通訊、圖像處理、信號檢測、金融建模設計與分析等領(lǐng)域。
MATLAB的基本數(shù)據(jù)單位是矩陣,它的指令表達式與數(shù)學、工程中常用的形式十分相似,故用MATLAB來解算問題要比用C,F(xiàn)ORTRAN等語言完成相同的事情簡捷得多,并且MATLAB也吸收了像Maple等軟件的優(yōu)點,使MATLAB成為一個強大的數(shù)學軟件。在新的版本中也加入了對C,F(xiàn)ORTRAN,C++,JAVA的支持。
Matlab自定義函數(shù)的幾種方法
1、函數(shù)文件+調(diào)用命令文件:需單獨定義一個自定義函數(shù)的M文件;
2、函數(shù)文件+子函數(shù):定義一個具有多個自定義函數(shù)的M文件;
3、Inline:無需M文件,直接定義;
4、匿名函數(shù);
5、Syms+subs: 無需M文件,直接定義;
6、字符串+subs:無需M文件,直接定義;
7、直接通過@符號定義。
1、函數(shù)文件+調(diào)用函數(shù)文件:定義多個M文件:
% 調(diào)用函數(shù)文件:myfile.m
clear
clc
for t=1:10
y=mylfg(t);
fprintf(‘M^(1/3)=%6.4f ’,t,y);
end
%自定義函數(shù)文件: mylfg.m
function y=mylfg(x) %注意:函數(shù)名(mylfg)必須與文件名(mylfg.m)一致
Y=x^(1/3);
注:這種方法要求自定義函數(shù)必須單獨寫一個M文件,不能與調(diào)用的命令文件寫在同一個M文件中。
2、函數(shù)文件+子函數(shù):定義一個具有多個子函數(shù)的M文件
%命令文件:funtry2.m
function []=funtry2()
for t=1:10
y=lfg2(t)
fprintf(‘M^(1/3)=%6.4f ’);
End
function y=lfg2(x)
Y= x^(1/3);
%注:自定義函數(shù)文件funtry2.m中可以定義多個子函數(shù)function。子函數(shù)lfg2只能被主函數(shù)和主函數(shù)中的其他子函數(shù)調(diào)用。
3、Inline:無需M文件,直接定義;
%inline命令用來定義一個內(nèi)聯(lián)函數(shù):f=inline(‘函數(shù)表達式’, ‘變量1’,’變量2’,……)。
調(diào)用方式:y=f(數(shù)值列表) %注意:代入的數(shù)值列表順序應與inline()定義的變量名順序一致。
例如:
f=inline(‘x^2+y’,’x’,’y’);
z=f(2,3)
Ans=7
注:這種函數(shù)定義方式是將它作為一個內(nèi)部函數(shù)調(diào)用。特點是,它是基于Matlab的數(shù)值運算內(nèi)核的,所以它的運算速度較快,程序效率更高。缺點是,該方法只能對數(shù)值進行代入,不支持符號代入,且對定義后的函數(shù)不能進行求導等符號運算。
例:
Clear
Clc
f=’x^2’;
Syms x g;
g=x^2;
h=inline(‘x^2’,’x’);
4. 匿名函數(shù)
使用matlab函數(shù)句柄操作符@,可以定義指向matlab內(nèi)置函數(shù)和用戶自定義函數(shù)的函數(shù)句柄,函數(shù)句柄也可以像函數(shù)一樣的使用。例如:
》》x=-pi:0.1:pi;
》》 fh={@cos,@sin};
fh =
@cos @sin
》》plot(fh{2}(x))
5、Syms+subs: 無需M文件,直接定義;
用syms定義一個符號表達式,用subs調(diào)用:
Syms f x %定義符號
f=1/(1+x^2); %定義符號表達式
subs(f, ‘x’, 代替x的數(shù)值或符號)
注:對于在syms中已經(jīng)定義過的符號變量,在subs中進行替代時,單引號可以省略。但是,如果在syms后又被重新定義為其他類型,則必須加單引號,否則不可替換。
這種函數(shù)定義方法的特點是,可以用符號進行替換
Syms f x
f=1/(1+x^2);
subs(f, ‘x’,’y^2’)
ans=
1/(1+(y^2)^2)
注:該方法的缺點是,由于使用符號運算內(nèi)核,運算速度會大大降低。
6、字符串+subs:無需M文件,直接定義;
直接定義一個字符串,用subs命令調(diào)用。例如:
f=’1/(1+x^2)’ %定義字符串
z=subs(f,’x’,2)
g=subs(f,’x’,’y^2’)
注:優(yōu)點是,占用內(nèi)存最少,定義格式方面自由。
缺點是,無法對字符進行符號轉(zhuǎn)化。
當所要替代的符號在調(diào)用前都已經(jīng)有了數(shù)值定義,則可以直接調(diào)用:subs(f)。例如:
f=’x^2*y’;
x=2;y=3;
subs(f)
ans=12
7、直接通過@符號定義。
示例如下:
》》 f=@(x,y)(x.^2-sin(y))
f =
@(x,y)(x.^2-sin(y))
》》 f(2,3)
ans =
3.8589
matlab怎么建立自定義函數(shù)
我們知道m(xù)atlab中有很多功能的函數(shù),可以直接調(diào)用。但在實際生活中,面對不同的問題,有不同的算法,因此有時候我們需要自定義對應于實際情況的函數(shù)。下面將以一個簡單的例子介紹操作方法。
工具/原料
matlab軟件
方法/步驟
首先了解函數(shù)的基本結(jié)構(gòu)。如圖,函數(shù)文件一般包括三個部分,即函數(shù)名,注釋內(nèi)容和函數(shù)體。其中,中括號里面的內(nèi)容可以省略。

與建立M文件類似,在命令窗口中輸入edit。
如圖,編寫函數(shù),需要注意函數(shù)命名規(guī)則,注釋部分可有可無,用%開始。

編寫完成后保存文件,最好保存在當前工作路徑的文件夾。

函數(shù)調(diào)用:
如圖,直接輸入函數(shù)名,形參,就能返回計算結(jié)果。

查看函數(shù)說明:
和查看其它函數(shù)說明一樣,輸入“help 函數(shù)名” 就能看到這個函數(shù)的注釋說明。

電子發(fā)燒友App





















評論