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

1 view (last 30 days)
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'.

Accepted Answer

David Hill
David Hill on 17 Mar 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 Comments
David Hill
David Hill on 17 Mar 2022
Then the top code section above should work for you, just convert all your ROI_Mask's into a single 3D matrix.

Sign in to comment.

More Answers (0)

Categories

Find more on Resizing and Reshaping Matrices in Help Center and File Exchange

Products


Release

R2020b

Community Treasure Hunt

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

Start Hunting!