which function is running while we have handle function?

1 visualización (últimos 30 días)
Neda
Neda el 8 de Feb. de 2018
Respondida: Steven Lord el 8 de Feb. de 2018
I'm wondering on the below code which function is running? I am new in matlab. I read the handle function, but still confuse to understand this? is bspline_registration_image is performing or lsqnonlin? or both? appreciate any comment.
% Start the b-spline nonrigid registration optimizer
O_trans = lsqnonlin(@(x)bspline_registration_image(x,sizes,Spacing,I1s,I2s,type),O_trans,[],[],optim);

Respuesta aceptada

Steven Lord
Steven Lord el 8 de Feb. de 2018
You called lsqnonlin. One or more times while lsqnonlin is running, it calls the function handle with some input arguments it has computed. Calling that function handle calls bspline_registration_image with the input lsqnonlin computed as well as the inputs sizes, Spacing, I1s, I2s, and type you specified when you constructed the function handle.
Think of a function handle as a way to refer to a function that doesn't require hard-coding the name of the function. Using function handles gives you the flexibility to call lsqnonlin and have it call bspline_registration_image one time and Neda_custom_registration_image the next, without requiring any changes to lsqnonlin itself.

Más respuestas (0)

Categorías

Más información sobre Verification, Validation, and Test 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