Hi, I am trying to clean matrix A (which is a 1064 x 4 matrix) while relying in the cleaning process on Matrices B and C that have the same size as A (Mat file attached). I developed a loop to clean A but I feel that a loop is unnecessary and that I can do it without relying on loops. Could the cleaning process be done much more efficiently? Your help is appreciated.
for i=1:size(A,1) for j=1:size(A,2) if A(i,j)<1 && A(i,j)>0 % this is the first issue in the cleaning process. A values between 0 and 1 should be equal to the respective value in matrix X
A (i,j)=B(i,j); end if A(i,j)<C(i,j) % this is the 2nd issue I am facing A values lower than their respective C values are erroneous and should be replaced by NaN
A (i,j)=nan; end if B(i,j)>100 %this is the third issue: When B is greater than 100, A values should be equal to B values
A (i,j)=B(i,j); elseif B(i,j)<0 %This is the fourth issue: negative percentages are missing observations
A(i,j)=-999; end if C(i,j)==0%This is the 5th issue: when C is zero, A should be zero as well
A(i,j)=0; end endend
Best Answer