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

 Respuesta aceptada

Star Strider
Star Strider el 12 de Feb. de 2021
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.

Más respuestas (0)

Categorías

Productos

Versión

R2020a

Preguntada:

el 12 de Feb. de 2021

Respondida:

el 12 de Feb. de 2021

Community Treasure Hunt

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

Start Hunting!

Translated by