# Various inputs and outputs in functions

2 visualizaciones (últimos 30 días)
Jason el 9 de Sept. de 2017
Editada: José-Luis el 9 de Sept. de 2017
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 comentarioMostrar -1 comentarios más antiguosOcultar -1 comentarios más antiguos
Stephen23 el 9 de Sept. de 2017
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.

Iniciar sesión para comentar.

KSSV el 9 de Sept. de 2017
Editada: KSSV el 9 de Sept. de 2017
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 comentariosMostrar 1 comentario más antiguoOcultar 1 comentario más antiguo
KSSV el 9 de Sept. de 2017
Input also can be made a structure
Jason el 9 de Sept. de 2017
Thankyou

Iniciar sesión para comentar.

### Más respuestas (1)

José-Luis el 9 de Sept. de 2017
Editada: José-Luis el 9 de Sept. de 2017
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
##### 0 comentariosMostrar -2 comentarios más antiguosOcultar -2 comentarios más antiguos

Iniciar sesión para comentar.

### Categorías

Más información sobre Matrix Indexing en Help Center y File Exchange.

### Community Treasure Hunt

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

Start Hunting!

Translated by