I wanna define function which has flexible number of argument.

Hello and happy new year!
Now I'm considering to define function which has flexible arguments.
For example, let's have function F which full argument number is 3 such as F(a,b,c)
If b is 0, user don't need to assign c thus F(a,b) is enough. Otherwise full argument assignment is required.
Can I make this kind of flexible function?

 採用された回答

Shoaibur Rahman
Shoaibur Rahman 2014 年 12 月 26 日
編集済み: Shoaibur Rahman 2014 年 12 月 26 日

1 投票

function out = F(varargin)
% do stuffs
% y = varargin{1}+varargin{2}
% out = y+1; etc.
For flexible number of outputs:
function varargout = F(varargin)
% do stuffs
% varargout{1} = varargin{1}-varargin{2}
% etc.

3 件のコメント

Dong-Gyu Jang
Dong-Gyu Jang 2014 年 12 月 29 日
Are u sure this is right? I defined similar function but got only error message telling me that number of argument is larger than what it should be.
Shoaibur Rahman
Shoaibur Rahman 2014 年 12 月 29 日
This should work in this way. Anyway, it would be better to see the part of your code and the errors generated by the code.
Dong-Gyu Jang
Dong-Gyu Jang 2014 年 12 月 30 日
Oh, you're right. I've just not known varargin and used arbitary variable name. As the result, it was not operated! Thanks to your advice! my function is now upgraded:)

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by