How to set a default value for my custom function

I hope to create such custom function
function addnum(mat,n=numel(mat))
mat+n
I mean I try to add a number into the element of mtrix mat,but if I don't give a explicit value for n,I hope the n will be the number of the mtrix self.

 채택된 답변

Stephen23
Stephen23 2017년 7월 17일
편집: Stephen23 2017년 7월 17일

5 개 추천

Unfortunately MATLAB does not (currently) allow defining default values in the function definition line itself (nor does it allow arguments to be specified by name, only by position). To define a default value you can use the input parser class (I find this slow and pointlessly complex), or simply use nargin like this:
function out = addnum(mat,n)
if nargin<2
n = 3;
end
out = mat+n;
end
For more multiple optional arguments you should consider using a structure or name-value pairs: see my FEX submission num2words for an example of this.

추가 답변 (2개)

KSSV
KSSV 2017년 7월 17일

0 개 추천

function addnum(mat)
n=numel(mat)
mat+n

댓글 수: 4

Yode
Yode 2017년 7월 17일
편집: Yode 2017년 7월 17일
Thanks man,but I hope addnum(mat,3) works either,then every element will add 3. :)
KSSV
KSSV 2017년 7월 17일
yes..
Yode
Yode 2017년 7월 17일
@KSSV Sorry,that work for you ?
function addnum(mat)
n=numel(mat)
mat+n
If you are using the above one....don't send any input just call it by addnum(mat), if you want logically select n then follow Stephen Cobeldick suggested.

댓글을 달려면 로그인하십시오.

Lee
Lee 2023년 2월 11일

0 개 추천

This is the way to define default number in matlab
function addnum(mat,n)
arguments
mat
n=numel(mat)
end
mat+n
end
Be sure to list all arguments in order

카테고리

도움말 센터File Exchange에서 循环及条件语句에 대해 자세히 알아보기

태그

질문:

2017년 7월 17일

답변:

Lee
2023년 2월 11일

Community Treasure Hunt

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

Start Hunting!