MATLAB: Find the element location

MATLAB

I have returns marked in a column of 1*20million column. It has a specific value as -10, but I am not able to find out where it is.
I have tried using
find(returns(:,1)==-10)
but couldnt interpret the ouput. –
ans =
0×1 empty double column vector
When I check this matrix, its blank and does not even give any answer. Can someone guide on this?
I also wanted to plot these returns and histogram for this-
For plot-
plot(returns)
But I just get the x and the y axis. The reason could be i have 20 million rows and thus, its not visible in the graph. Can we show these values, in this graph, rather than just showing the x and y axis as it gives a vague picture.
For histogram-
nbins = 4000; %i have calculated the appropriate bins
hist(filteredreturns,nbins)
However, I am just getting everything at a point. I want to see the distribution and its should mostly be normally distributed or highly skewed towards right.

Best Answer

You have encountered ‘floating-point approximation error’. Most numbers are not exactly represented in floating-point precision (especially if they are the result of computations), so testing for them exactly is not usually productive. See the documentation on Floating-Point Numbers for an extended discussion.
Taking that into account, finding the indices of the ‘-10’ elements is relatively straightforward.
For example:
Returns = (0.5-rand(1, 1E+4))*30; % Test Vector
Lv = ismembertol(Returns, -10, 0.01); % Logical Vector Result
Indices = find(Lv); % Index Positions
Use your vector instead of my test vector. Experiment with the tolerance value (here 0.01) to get the result you want.
See if plotting with a marker (instead of a line) will make your data more visible. I cannot offer you any advice with respect to the histogram. We do not have your data or know what result you want, so you will need to experiment.