matlab 函数教程,MATLAB函数 - Matlab教程
MATLAB函數(shù) - Matlab教程
函數(shù)是一組語句一起執(zhí)行任務。在MATLAB中,函數(shù)定義在單獨的文件。文件函數(shù)的文件名應該是相同的。
函數(shù)操作在自己的工作空間,它也被稱為本地工作區(qū),獨立的工作區(qū),在 MATLAB 命令提示符訪問,這就是所謂的基礎工作區(qū)的變量。
函數(shù)可以接受多個輸入?yún)?shù)和可能返回多個輸出參數(shù)
函數(shù)語句的語法是:
function [out1,out2, ..., outN] = myfun(in1,in2,in3, ..., inN)
例子
下面的函數(shù)名為mymax,應當書面,在一個文件名為mymax.m。它需要五個數(shù)字作為參數(shù)并返回最大的數(shù)字。
創(chuàng)建函數(shù)文件,名為mymax.m 并輸入下面的代碼:
function max = mymax(n1, n2, n3, n4, n5)
%This function calculates the maximum of the
% five numbers given as input
max = n1;
if(n2 > max)
max = n2;
end
if(n3 > max)
max = n3;
end
if(n4 > max)
max = n4;
end
if(n5 > max)
max = n5;
end
一個函數(shù)的第一行以 function關鍵字開始。它給出了函數(shù)的名稱和參數(shù)的順序。在我們的例子中,mymax 函數(shù)有5個輸入?yún)?shù)和一個輸出參數(shù)。
注釋行語句的功能后提供的幫助文本。這些線條打印,當輸入:
help mymax
MATLAB將執(zhí)行上面的語句,并返回以下結果:
This function calculates the maximum of the
five numbers given as input
可以調用該函數(shù)為:
mymax(34, 78, 89, 23, 11)
MATLAB將執(zhí)行上面的語句,并返回以下結果:
ans =
89
匿名函數(shù)
一個匿名的函數(shù)就像是在傳統(tǒng)的編程語言,在一個單一的 MATLAB 語句定義一個內聯(lián)函數(shù)。它由一個單一的 MATLAB表達式和任意數(shù)量的輸入和輸出參數(shù)。
可以定義一個匿名函數(shù)在MATLAB命令行或在一個函數(shù)或腳本。
這種方式,可以創(chuàng)建簡單的函數(shù),而不必為他們創(chuàng)建一個文件。
創(chuàng)建一個匿名函數(shù)表達式的語法
f = @(arglist)expression
例子
在這個例子中,我們將編寫一個匿名函數(shù)名為 power,這將需要兩個數(shù)字作為輸入并返回第二個數(shù)字到第一個數(shù)字次冪。
創(chuàng)建一個腳本文件,并鍵入下面的代碼:
power = @(x, n) x.^n;
result1 = power(7, 3)
result2 = power(49, 0.5)
result3 = power(10, -10)
result4 = power (4.5, 1.5)
當您運行該文件時,它會顯示:
result1 =
343
result2 =
7
result3 =
1.0000e-10
result4 =
9.5459
主要和子函數(shù)
在一個文件中,必須定義一個匿名函數(shù)以外的任何函數(shù)。每個函數(shù)的文件包含一個必需的主的函數(shù)首先出現(xiàn)的任何數(shù)量的可選子函數(shù)的主要函數(shù)之后使用。
主要函數(shù)可以調用的文件,它定義之外,無論是從命令行或從其他函數(shù),但子功能不能被稱為命令行或其他函數(shù),外面的函數(shù)文件。
子功能可見函數(shù)內的文件,它定義它們的主要函數(shù)和其他函數(shù)。
例子
讓我們寫一個名為quadratic 函數(shù)計算一元二次方程的根。則該函數(shù)將需要三個輸入端,二次系數(shù),線性合作高效的和常數(shù)項。它會返回根。
函數(shù)文件quadratic.m將包含的主要quadratic 函數(shù)和子函數(shù)disc 來計算判別。
創(chuàng)建一個函數(shù)文件quadratic.m 并輸入下面的代碼:
function [x1,x2] = quadratic(a,b,c)
%this function returns the roots of
% a quadratic equation.
% It takes 3 input arguments
% which are the co-efficients of x2, x and the
%constant term
% It returns the roots
d = disc(a,b,c);
x1 = (-b + d) / (2*a);
x2 = (-b - d) / (2*a);
end % end of quadratic
function dis = disc(a,b,c)
%function calculates the discriminant
dis = sqrt(b^2 - 4*a*c);
end % end of sub-function
可以從命令提示符調用上面的函數(shù)為:
quadratic(2,4,-4)
MATLAB將執(zhí)行上面的語句,并返回以下結果:
ans =
0.7321
嵌套函數(shù)
在這個機體內另一個函數(shù),可以定義函數(shù)。這些被稱為嵌套函數(shù)。嵌套函數(shù)包含任何其他函數(shù)的任何或所有的組件。
嵌套函數(shù)被另一個函數(shù)的范圍內定義他們共享訪問包含函數(shù)的工作區(qū)。
嵌套函數(shù)的語法如下:
function x = A(p1, p2)
...
B(p2)
function y = B(p3)
...
end
...
end
例子
讓我們重寫quadratic函數(shù),從前面的例子,但是,這一次的 disc 函數(shù) 將是一個嵌套函數(shù)。
創(chuàng)建一個函數(shù)文件quadratic2.m,并輸入下面的代碼:
function [x1,x2] = quadratic2(a,b,c)
function disc % nested function
d = sqrt(b^2 - 4*a*c);
end % end of function disc
disc;
x1 = (-b + d) / (2*a);
x2 = (-b - d) / (2*a);
end % end of function quadratic2
可以從命令提示符調用上面的函數(shù)為:
quadratic2(2,4,-4)
MATLAB將執(zhí)行上面的語句,并返回以下結果:
ans =
0.7321
私有函數(shù)
一個私有函數(shù)是一個主要的函數(shù),是只看得見一組有限的其它函數(shù)。如果不想公開的執(zhí)行的一個函數(shù),可以創(chuàng)建私有函數(shù)。
私有函數(shù)駐留特殊的名字私人的子文件夾中。
他們是可見的,只有在父文件夾的函數(shù)。
例子
讓我們重寫quadratic 函數(shù)。然而,這時候,計算??的判別式disc 函數(shù),這是一個私有函數(shù)。
創(chuàng)建一個子文件夾命名為私人工作目錄。它存儲在以下函數(shù)文件disc.m:
function dis = disc(a,b,c)
%function calculates the discriminant
dis = sqrt(b^2 - 4*a*c);
end % end of sub-function
在工作目錄,并創(chuàng)建一個函數(shù)quadratic3.m中輸入下面的代碼:
function [x1,x2] = quadratic3(a,b,c)
%this function returns the roots of
% a quadratic equation.
% It takes 3 input arguments
% which are the co-efficients of x2, x and the
%constant term
% It returns the roots
d = disc(a,b,c);
x1 = (-b + d) / (2*a);
x2 = (-b - d) / (2*a);
end % end of quadratic3
可以從命令提示符調用上面的函數(shù)為:
quadratic3(2,4,-4)
MATLAB將執(zhí)行上面的語句,并返回以下結果:
ans =
0.7321
全局變量
全局變量可以共享由一個以上的函數(shù)。對于這一點,需要將變量聲明為全局在所有的函數(shù)可使用。
如果想訪問該變量從基工作區(qū),然后在命令行聲明的變量。
全局聲明必須出現(xiàn)在變量中實際上是使用功能。這是一個很好的做法是使用大寫字母為全局變量的名稱,以區(qū)別于其他變量。
例子
讓我們創(chuàng)建一個函數(shù)文件名為average.m和輸入下面的代碼:
function avg = average(nums)
global TOTAL
avg = sum(nums)/TOTAL;
end
創(chuàng)建一個腳本文件,并鍵入下面的代碼:
global TOTAL;
TOTAL = 10;
n = [34, 45, 25, 45, 33, 19, 40, 34, 38, 42];
av = average(n)
當您運行該文件,就會顯示以下結果:
av =
35.5000
powered by Gitbook
該教程制作時間: 2016-01-26 09:36:04
總結
以上是生活随笔為你收集整理的matlab 函数教程,MATLAB函数 - Matlab教程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 加密狗破解原理和破解方法介绍
- 下一篇: matlab人脸追踪,求大神帮助我这个菜