Matlab如何實(shí)現(xiàn)函數(shù)重載?Matlab實(shí)現(xiàn)函數(shù)重載的方法

大家應(yīng)該都知道C++和Java編程能夠?qū)崿F(xiàn)函數(shù)的重載,而當(dāng)我們使用Matlab的一些函數(shù),如:plot函數(shù),可以發(fā)現(xiàn)該函數(shù)可以有不同的輸入,如:plot(data)、plot(t,data)和plot(X,Y,'LineWidth',2)等。這些就是matlab函數(shù)重載的應(yīng)用。

Matlab(商業(yè)數(shù)學(xué)軟件) v7.0正式版(附序列號(hào)及安裝教程)
- 類型:其它軟件
- 大?。?/span>1015.7MB
- 語言:簡體中文
- 時(shí)間:2014-05-14
下面我就通過一個(gè)簡單的輸出輸入數(shù)中的最大數(shù)的函數(shù)fun()來說明Matlab在編輯函數(shù)時(shí)如何實(shí)現(xiàn)重載。
方法/步驟:
1.首先打開Matlab(本人使用的是Matlab 2015a,使用其他版本的Matlab影響不大)。在Common Window里輸入edit fun(fun可改為任意字符,只為演示用),打開M文件編輯器,此時(shí)已創(chuàng)建M文件,文件名為fun。
2.在編輯器內(nèi)輸入 function y=fun(varargin),varargin是Matlab內(nèi)部變量,類型為元胞數(shù)組,如果改為其他變量則會(huì)報(bào)錯(cuò)。
3.添加代碼 narginchk(2,3); 保證輸入量的個(gè)數(shù),當(dāng)個(gè)數(shù)小于2或大于3時(shí)程序會(huì)報(bào)錯(cuò)。
4.Matlab內(nèi)部有一個(gè)nargin變量用于存儲(chǔ)函數(shù)中輸入量的個(gè)數(shù)。下面用If語句來實(shí)現(xiàn)函數(shù)的重載。
輸入
if nargin==2
a=varargin{1};
b=varargin{2};
y=max([a,b]);
...
通過這段代碼,函數(shù)可實(shí)現(xiàn)輸入兩個(gè)量時(shí)的功能。
其中用a來存放輸入量的第一個(gè)量,用b來存放輸入量的第二個(gè)量。max()函數(shù)返回輸入矩陣的最大元素。
5.再輸入
elseif nargin==3
a=varargin{1};
b=varargin{2};
c=varargin{3};
y=max([a,b,c]);
end
通過這段代碼,函數(shù)可實(shí)現(xiàn)輸入兩個(gè)量時(shí)的功能。
其中用a來存放輸入量的第一個(gè)量,用b來存放輸入量的第二個(gè)量,用c來存放輸入量的第三個(gè)量。
效果如下圖
6.保存之后,下面對(duì)所編輯的函數(shù)進(jìn)行驗(yàn)證。
Command Window 中分別輸入
answer1=fun(12,13,14)
answer2=fun(16,25)
answer3=fun(16)
answer4=fun(12,13,14,15)
結(jié)果如下圖
7.準(zhǔn)確的講,matlab函數(shù)的重載并不是嚴(yán)格意義上的函數(shù)重載,但是通過對(duì)變量的合理運(yùn)用,能夠?qū)崿F(xiàn)重載的功能。
希望這一條經(jīng)驗(yàn)?zāi)軌驇椭酱蠹遥?/p>
注意事項(xiàng)
編輯函數(shù)是輸入變量一定得是varargin,否則Matlab會(huì)將輸入變量視為一個(gè)。
if語句一定要加end
相關(guān)文章
- 我們知道m(xù)atlab中有很多功能的函數(shù),可以直接調(diào)用。但在實(shí)際生活中,面對(duì)不同的問題,有不同的算法,因此有時(shí)候我們需要自定義對(duì)應(yīng)于實(shí)際情況的函數(shù)。Matlab如何建立自定義2016-10-28
- Matlab是一種用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計(jì)算的高級(jí)技術(shù)計(jì)算語言和交互式環(huán)境;這款軟件功能強(qiáng)大;也可以用于處理圖像;Matlab圖像如何處理?下面小編為大2016-10-27
- matlab是一款商業(yè)數(shù)學(xué)軟件;用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計(jì)算的高級(jí)技術(shù)計(jì)算語言和交互式環(huán)境,應(yīng)用非常之廣泛!很多朋友不會(huì)使用Matlab極坐標(biāo)曲線繪制;該2016-10-27
- matlab畫圖線條怎么選擇類型和顏色?matlab繪制圖形的時(shí)候,需要選擇線條的類型和顏色,今天我們就來教大家比較基礎(chǔ)的膠層,下面將以一個(gè)簡單的繪圖為例,需要的朋友可以參2016-05-09
Matlab怎么繪制離散圖? matlab畫散點(diǎn)圖的教程
Matlab怎么繪制離散圖?畫離散圖需要使用函數(shù)plot(),及泥潭我們就倆給大家介紹兩種matlab畫散點(diǎn)圖的方法,圖文教程很詳細(xì),需要的朋友可以參考下2016-04-26- Matlab怎么導(dǎo)出eps或jpg圖片?方法有很多,之前我們也介紹過,今天我們來給大家補(bǔ)充匯總一下,一共有四種方法,需要的朋友可以進(jìn)來參考一下2016-04-08
MATLAB怎么讀取excel文件中的數(shù)據(jù)?
MATLAB怎么讀取excel文件中的數(shù)據(jù)?想將excel中的數(shù)據(jù)導(dǎo)入MATLAB軟件中,但是這里有兩種情況,一種是讀取所有數(shù)據(jù),另一種是讀取指定數(shù)據(jù),下面我們來看看這兩種情況的讀取2016-03-09matlab中失誤將command窗口關(guān)掉了該怎么辦?
matlab中失誤將command窗口關(guān)掉了該怎么辦?關(guān)閉command窗口以后發(fā)現(xiàn)找不到了,該怎么才能調(diào)出command界面呢?請(qǐng)看下文詳細(xì)介紹2016-02-29- Matlab中怎么更改字體的大?。坑械臅r(shí)候Matlab中默認(rèn)的字體我們不一定看得習(xí)慣,有可能會(huì)覺得很小,想設(shè)置大一點(diǎn)方便看清楚,今天我們就來看看Matlab中更改字體的大小的教程2016-02-27
matlab如何實(shí)現(xiàn)曲線擬合? matlab做曲線擬合的教程
matlab如何實(shí)現(xiàn)曲線擬合?我們?cè)谘芯績蓚€(gè)變量之間的關(guān)系時(shí),經(jīng)常要用到曲線擬合,用圖形直觀的展現(xiàn)出變量之間的關(guān)系,下面分享matlab做曲線擬合的教程,需要的朋友可以參考2015-11-18