Effacer les filtres
Effacer les filtres

which function is running while we have handle function?

2 vues (au cours des 30 derniers jours)
Neda
Neda le 8 Fév 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);

Réponse acceptée

Steven Lord
Steven Lord le 8 Fév 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.

Plus de réponses (0)

Catégories

En savoir plus sur Geometric Transformation and Image Registration dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by