필터 지우기
필터 지우기

How to set a default value for my custom function

조회 수: 93 (최근 30일)
Yode
Yode 2017년 7월 17일
답변: Lee 2023년 2월 11일
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일
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일
function addnum(mat)
n=numel(mat)
mat+n
  댓글 수: 4
Yode
Yode 2017년 7월 17일
@KSSV Sorry,that work for you ?
KSSV
KSSV 2017년 7월 17일
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일
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

카테고리

Help CenterFile Exchange에서 Whos에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!