# How to determine significant wave height from time series data in Matlab>

60 views (last 30 days)
Delon Tumanggor on 27 Apr 2014
Edited: Peter Mills on 12 Jan 2018
Dear all,
I have time series from ocean waves and want to calculate the significant wave height by using Matlab. If you have experience in this topic, could you please to give me matlab script to solve that? Thank you for your helping

rifat on 27 Apr 2014
I dont know what it means by "significant wave height". But if you are trying to detect the peaks in a time series then try the function mspeaks.
Peter Mills on 12 Jan 2018
Edited: Peter Mills on 12 Jan 2018
I am also trying to calculate the significant wave height. Significant wave height is the average of the highest one-third (33%) of waves . Does anyone know of a function which will give the heights 1/3 of values from a data series? This might help:  https://uk.mathworks.com/matlabcentral/answers/22597-finding-the-position-of-the-1st-2nd-and-3rd-max-value-in-a-matrix
So say we have
WaveHeight=[3 1 5 2 3.1 6 5.5 3 2.5];
We need to find the highest 1/3:
HighestThird=[6 5.5 5]
HS= mean(HighestThird) %significant wave height
This code  will give the highest values
[max1, ind1] = max(WaveHeight);
WaveHeight(ind1) = -Inf;
[max2, ind2] = max(WaveHeight);
WaveHeight(ind2) = -Inf;
[max3, ind3] = max(WaveHeight);
WaveHeight(ind3) = -Inf;
But what if we what a function that will calculate the mean of the heights 1/3 of WaveHeight with
length(WaveHeight)
being a variable which may be large?