【Matlab】函数输入个数不定怎么办?
1.Introduction
有時調用Matlab官方函數時,發現一些函數輸入參數的數量可多可少,可長可短,可大可小,咳咳。。
比如常見的 xlsread 函數,可以直接讀 Excel 文件,也可以指定讀取 Excel 的范圍,那么這種功能是怎么實現的呢?
2.Materials and methods
首先,我們打開 xlsread 函數,看看他內部是怎么寫的,如下:
可以看到,這個函數封裝時,默認有5個輸入,那么他是怎么實現1個輸入也不報錯的呢?我們繼續往下看他的代碼,不過翻了幾頁發現都是注釋,墻裂建議大家多寫注釋,多寫標準化注釋,這樣即使幾個月后再想調用這個函數,也會感覺了如指掌~
通過上面的代碼,可以看到,其中有一個很重要的變量就是 nargin ,他反應了 變量的輸入個數。了解這個之后,我們就可以通過 nargin 來執行一系列邏輯操作。下面通過 “三個和尚” 的例子,展示下輸入變量個數不定的操作:
function [outputMonks,outputString] = threeMonks(monk1,monk2,monk3)switch nargin% If the number of function input arguments(data) is 1.case 1outputMonks = monk1;outputString = '一個和尚有水喝';% If the number of function input arguments(data) is 2.case 2outputMonks = [monk1,monk2];outputString = '兩個和尚抬水喝';% If the number of function input arguments(data) is 3.case 3outputMonks = [monk1,monk2,monk3];outputString = '三個和尚沒水喝';% Generate a warning dialog for other input.otherwisemsgbox('程序僅支持3個以下的和尚', ... 'Warning','warn'); endend3. Results and discussion
上面我們構建了一個默認三輸入的函數,通過 swith 語句判斷,當輸入個數不同時,會輸出不同的字符串。下面看看效果:
可以看到,由于在 swich 的分支里,所有輸入參數都有調用,所以當輸入1個或者2個變量時,函數也不會報錯。當函數沒有輸入時,我們設置了一個警告框來提示用戶。而當輸入個數超過初始預留個數后,便會報錯。所以這樣的話,便無法實現未知變量個數的輸入問題,期待有更好的方法實現~
4. Conclusion
Matlab 真好用, 基本能想到的函數官方都給封裝好了。前段時間寫代碼時,學會了很多小技巧,準備攢著寫博客,結果發現過了一禮拜,忘得都差不多了,哈哈哈,這幾天應該會高產了~
猜你喜歡:👇🏻
?【Matlab】如何自定義無輸入和無輸出的函數?
?【Matlab】判斷是否為空?是否為NaN?
?【Python】函數默認參數怎么改變?
總結
以上是生活随笔為你收集整理的【Matlab】函数输入个数不定怎么办?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Matlab】怎么修改Excel单元格
- 下一篇: linux chromebook arm