MATLAB: Using ismember to find the corresponding value


clear all
depth = [0,2,4,7,10,13,16,19,22,25,30,35];%depth below surface
temp = 0 + 29.*rand(365,12);
metaT = 0 + 35.*rand(365,1);
[Lia,Locb] = ismember(round(metaT),depth);
In this example I use ismember to find the column number of 'depth' which 'metaT' corresponds to. The only problem is that the values do not equal exactly the same as those specified in depth, therefore without inserting the round command, ismember would return a vector of zeros. I was wondering if there was another method of doing this, such as if the value doesn't equal that of depth, say if metaT had a value of 20 it would correspond to the values of 19 or 22 in the depth vector. So, basically find within which range of depth it corresponds to, and then rounds it to the closest value.

Best Answer

  • doc histc
    where depth is your edges.
    The 2nd output argument will be the one you care about most likely.