Having problem in for loop, Can you guys please help me?

1 visualización (últimos 30 días)
Rahul Shah
Rahul Shah el 17 de Mzo. de 2022
Comentada: Rahul Shah el 17 de Mzo. de 2022
I have variable name ROI_Mask_1, ......, ROI_Mask_9
and while using for loop like this,
for roi= 1:9
Ref_L2(dates).SREF(bands).Sur_Ref_L2_MASK(roi,1) = mean(Sur_Ref_L2(mask_real_data & ROI_Mask_,(num2str(roi))));
end
I am getting error;
Unrecognized function or variable 'ROI_Mask'.

Respuesta aceptada

David Hill
David Hill el 17 de Mzo. de 2022
If you can advoid it, you should never make multiple variables but should place them all in a matrix. If ROI_Mask's are matrices you should just make a 3D matrix that you can index into.
ROI_Mask(:,:,1)=ROI_Mask_1;
ROI_Mask(:,:,2)=ROI_Mask_2;%repeat for all 9 (or change your code to produce them like this)
%then it is very easy to index into them
for k=1:9
Ref_L2(dates).SREF(bands).Sur_Ref_L2_MASK(k,1) = ...
mean(Sur_Ref_L2(mask_real_data & ROI_Mask(:,:,k)));
end
If ROI_Mask's are vectors, then a 2D matrix will work
ROI_Mask(1,:)=ROI_Mask_1;
ROI_Mask(2,:)=ROI_Mask_2;
for k=1:9
Ref_L2(dates).SREF(bands).Sur_Ref_L2_MASK(k,1) = ...
mean(Sur_Ref_L2(mask_real_data & ROI_Mask(k,:)));
end
  3 comentarios
David Hill
David Hill el 17 de Mzo. de 2022
Then the top code section above should work for you, just convert all your ROI_Mask's into a single 3D matrix.
Rahul Shah
Rahul Shah el 17 de Mzo. de 2022
Thank you David, its working now.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Resizing and Reshaping Matrices en Help Center y File Exchange.

Productos


Versión

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by