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檔案實際上氛圍兩種,一種叫做指令碼...