Using an array inside a function

I have a spectral block (512,512,16) that can be thought of as the output from a multiband image sensor (16 spectral slices). I'd like to integrate over the slices to produce a single image (512,512). The integral includes a wavelength term, so I figured it'd be best to use a function handle, but I can't reason a way to operate on the entire block all at once. I could loop through pixel by pixel, but I'm sure there's a more clever way to go about this. Thoughts?
Thanks,
Ben

 采纳的回答

Try something like this, using trapz:
SB = randn(512,512,16); % Create Matrix
Lambda = 1./(1:16); % Create Wavelength Vector (Guessing Here)
IntSB = trapz(Lambda,SB,3); % Numerical Integration Over Dimension #3
The result will be a (512,512) matrix.
Also consider cumtrapz, depending on the result you want.

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Numerical Integration and Differentiation 的更多信息

产品

版本

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by