MATLAB: How to skip zero values in an array when evaluating the correlation coefficient

corrcoefcorrelation coefficientfor looplog(0)nested for loopnot equal tozero

Hello, I am kind of new to Matlab and I am running into some issues evaluating the correlation coefficient between the natural logarithm of two arrays(chan1 and chan2) each of size 577*1 that includes zero values that I would like to skip when calculating the correlation coefficient. I thought I could do a nested for loop to skip the zero values and this is what I have:
for chan1 ~= 0
for chan2 ~=0
c = corrcoef(log(chan1),log(chan2))
end
end
But it seems like that Matlab does not like it when one uses does not equal to in a for loop
Please help me solving this issue.
Thanks!

Best Answer

% Some pretend data
chan1 = round(randn(1000,1));
chan2 = round(randn(1000,1));
% Identify pairs where both are nonzero
idxBothNonzero = chan1 > 0 & chan2 > 0;
% Evaluate correlation, using only pairs where both are nonzero
c = corrcoef(log(chan1(idxBothNonzero)),log(chan2(idxBothNonzero)))