which function is running while we have handle function?

2 次查看(过去 30 天)
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);

采纳的回答

Steven Lord
Steven Lord 2018-2-8
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.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Geometric Transformation and Image Registration 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by