Help with commands varargin and switch

4 visualizaciones (últimos 30 días)
NS
NS el 16 de Mayo de 2011
[EDIT: Mon May 16 20:51:23 UTC 2011 - Reformat - MKF]
Hello,
I am new to MATLAB and I am trying to understand the code given in the following paper (Matov et al 'Analysis of microtubule dynamic instability using a plus-end growth marker', Nature, 7, 761-768 (2010).
One of the codes uses command varargin and switch. Could someone please explain the use of these command in MATLAB.
Part of the code is given below %START
function [cutoffIndex, cutoffValue, sp, axesH] = cutFirstHistMode(varargin)
% goodDataIdx is used in case data contains nans
goodDataIdx = [];
% check for axesHandle
if ishandle(varargin{1})
axesH = varargin{1};
varargin(1) = [];
verbose = 1;
else
axesH = [];
end
switch length(varargin) - isscalar(varargin{end})
case 1 % data
doHistogram = 1;
data = varargin{1};
data = data(:);
%END. I have given only a part of this code.
Your help is truly appreciated.
Thanks.

Respuesta aceptada

Matt Fig
Matt Fig el 16 de Mayo de 2011
Probably the best thing is for you to read the doc on these topics.
  4 comentarios
NS
NS el 18 de Mayo de 2011
Thanks Jan.
I ran the code. The "if" operator processed the true statements if the argument had a positive value (not 0).
eg. when ishandle(varargin{1})=1 the if statement was processed and when the value was 0 the else statements were processed.
Also I understood what varargin stands for after running the code. Thanks once again
Jan
Jan el 18 de Mayo de 2011
Be careful: "ishandle(varargin{1})=1" is not a comparison, but a standard bug. You want: "ishandle(varargin{1})==1". "if ishandle(varargin{1})" works also, because ISHANDLE replies a LOGICAL already.
"if X" with a numerical X (even an array!) means explicitely: "if all(X) && ~isempty(X)".

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Startup and Shutdown en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by