# Various inputs and outputs in functions

조회 수: 3(최근 30일)
Jason 2017년 9월 9일
편집: José-Luis 2017년 9월 9일
Hi. I have several techniques to find spots on an image and rather than have say 5 different functions I want to create one and pass in a "method" flag. My question is that each different method has a different number of inputs and outputs. Im not sure how to handles these, and help is greatly appreciated.
function[p1,p2,p3,p4,p5]=objectDetections(handles,image,x,y,par1,par2,method)
if method==1
//perform method 1 - requires inputs handles,image,x,y
// returns p1,p2
elseif method==2
//perform method 2 - handles,image,x,y, par1
//returns p1,p3
elseif method==3
//perform method 3 - handles,image,x,y, par1, par2
//returns p1,p2,p3,p4,p5
end
##### 댓글 수: 1표시숨기기 없음
Stephen23 2017년 9월 9일
The simplest, clearest, neatest solution: use a structure. This is what MATLAB uses for many advanced functions that support multiple options, (e.g. optimization, ODE's, etc), and is simple to implement.

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

### 채택된 답변

KSSV 2017년 9월 9일
편집: KSSV 2017년 9월 9일
You have multiple options...one of the option is make output a structure....
function[out]=objectDetections(handles,image,x,y,par1,par2,method)
if method==1
//perform method 1 - requires inputs handles,image,x,y
out.p1 = p1;
out.p2 = p2;
elseif method==2
//perform method 2 - handles,image,x,y, par1
out.p1=p1;
out.p3=p3;
elseif method==3
//perform method 3 - handles,image,x,y, par1, par2
out.p1=p1;
out.p2=p2;
out.p3=p3;
out.p4=p4;
out.p5=p5;
end
You can also make output a cell.
##### 댓글 수: 3표시숨기기 이전 댓글 수: 2
Jason 2017년 9월 9일
Thankyou

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

### 추가 답변(1개)

José-Luis 2017년 9월 9일
편집: José-Luis 2017년 9월 9일
You could pass a structure to your function. The structure could contain whatever flags and arguments you need. Same goes for the output.
Slightly more cumbersome: a function can accept a variable number of arguments -> varargin

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

### 범주

Find more on Particle & Nuclear Physics in Help Center and File Exchange

### Community Treasure Hunt

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

Start Hunting!

Translated by