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

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'.

 Risposta accettata

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 Commenti

my ROI_Mask_1 ....9 each ROI_Mask contains 7081x7801 size of logical matrix.
Then the top code section above should work for you, just convert all your ROI_Mask's into a single 3D matrix.
Thank you David, its working now.

Accedi per commentare.

Più risposte (0)

Prodotti

Release

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by