Matlab,如何實現輸入引數及輸出引數的個數可變

時間 2021-07-01 01:45:39

1樓:洪潮

使用變數varargin和變數varargout。varargin和varargout必須使用小寫形式。例如,

function [m,n] = testhv3(varargin)

將輸入的變數數讀取到函式testhv3中,而

function [varargout] = testhv4(m, n, p)

則通過函式testhv4返回輸出的變數數。若函式testhv有一個固定的輸入變數x,後跟輸入變數的可變數目,則呼叫

function [m, n] = testhv3(x, varargin)

函式時,會導致varargin由使用者提供的第二個輸入變數開始執行(第二個輸入變數為varargin這個單元陣列第一個元素)。varargout的情形與此類似。一個函式的輸入變數和輸出變數的個數是可變的。

當varargin用做一個函式的輸入變數時,matlab會將其置入一個單元陣列中,該陣列接受由使用者輸入的變數數。varargout類似,函式返回的是一個單元陣列。

例:

function varargout = test(a, b, varargin)

if (nargin == 2)

fprintf('共有%d個輸入引數.\n',nargin);

varargout = a;

varargout = b;

elseif (nargin == 3)

fprintf('共有%d個輸入引數.\n',nargin);

varargout = a;

varargout = b;

varargout = varargin;

endend

當你在matlab命令列鍵入

[x,y,z] = test(1, 2, 3)

返回共有3個輸入引數.

x = 1

y = 2

z =  3

參考文獻

[1]rafael c.gonzalez,richard e.woods,steven l.

eddins.數字影象處理(matlab版)[m].電子工業出版社:

北京,2005.9:51.

[2]森林裡的樹葉子.matlab,如何實現輸入引數及輸出引數的個數可變?[eb/ol].

2樓:

方法一:很簡單,用向量即可。

你的程式:

function y = test(x)

len = length(x);

for i =1:len

y(i)=x(i)+1;

endend

這樣 返回的值,就是x中所有元素+1之後的值。

方法二: 用物件導向

同樣是上述函式

function y = test(x)

% 這裡y和x都是物件,其下包括多個屬性。比如可以直接如下呼叫y.num=x.num*2;

y.length=x.length^2;

end只是這樣使用的時候,要注意x在附值時,被使用到的屬性必須要有。

例如:x.num=1;

x.length=5;

y=myfun(x);

可以自己跑一下試試。

使用matlab編寫一個函式,如何在函式執行時,提示使用者輸入一些計算基本引數呢?

3樓:匿名使用者

%提醒使用者輸入數值

a=input('enter the a:');

b=input('enter the b:');

把這個放m檔案開始的地方,呼叫的時候它就會提醒輸入a和b的值

matlab裡如何得出我輸入資料的個數?

4樓:匿名使用者

要知道輸入資料的個數用a=size(n)即可。

nargin是用來判斷輸入變數個數的函式,這樣就可以針對不同的情況執行不同的功能。通常可以用他來設定一些預設值,如下面的函式。

例子,函式test1的功能是輸出a和b的和。如果只輸入一個變數,則認為另一個變數為0,如果兩個變數都沒有輸入,則預設兩者均為0。

function y=test1(a,b)if nargin==0

a=0;b=0;

elseif nargin==1

b=0;

endy=a+b;

如何編寫matlab函式檔案,使輸入引數a,b分別為矩形的長

function srect srect a,b switch nargin case 1 srect a a case 2 srect a b otherwise disp 請輸入矩形的長和寬資料!end 月月 function m,n rectangle statistics a,b 輸入變數為...

matlab如何輸入函式,matlab 如何輸入導數

數碼答疑 導數採用diff函式 diff s,v n 其中s為求的函式,v是變數,n為求導次數例如 diff t 6 t 6 720一階導數 diff s 二階導數 diff s,2 diff 函式是matlab的符號函式求導。diff 使用說明 diff s,v 對表示式s中指定符號變數v,計算s...

新學MATLAB,輸入引數的數目不足是什麼意思

xummer 昔年 就是當執行函式的時候,沒有提供足夠的引數。比如,如果需要計算一個數 x 的正弦值,那麼,如果不給定x的話,是沒有辦法得到一個確切的數值的。也就是說,當在命令列中輸入sin 的時候,是不會有正確結果的。這就是作為的輸入引數不足。matlab中的.m檔案實際上氛圍兩種,一種叫做指令碼...