MATLAB: Changing time from decimal days to +- 0 from high water

logical?positive integer

I am attempting to plot pressure gradient over a tide cycle. I would like to change the time, currently in decimal days, into +- hours with high water as 0.
%find high water value pkIndex = max(pf)
%find time value at high tide timepkIndex = tf(pkIndex)
%I experience this error Attempted to access tf(1.8268); index must be a positive integer or logical.

Best Answer

  • Guessing a bit, because you don't tell us what pf and tf are, but assuming they are water height and time vectors, I suspect that it may help to change the first line of code to
    [~, pkindex] = max(pf);
    This is because the first result from max (in this case 1.8268) is the maximum value stored in the vector pf. What you need is not, I think, that value, but the index at which it is stored, which is the second result from max.