diff --git a/wetb/fatigue_tools/fatigue.py b/wetb/fatigue_tools/fatigue.py
index 4b4009b6cd58f6669c97bc6c11462c6f480ead9d..4be58383bd9b6018c5fb65f478f72eb9d93f1b8e 100644
--- a/wetb/fatigue_tools/fatigue.py
+++ b/wetb/fatigue_tools/fatigue.py
@@ -106,7 +106,7 @@ def eq_load_and_cycles(signals, no_bins=46, m=[3, 4, 6, 8, 10, 12], neq=[10 ** 6
         ampl_bin_mean = (ampl_bin_edges[:-1] + ampl_bin_edges[1:]) / 2
     cycles, ampl_bin_mean = cycles.flatten(), ampl_bin_mean.flatten()
     with warnings.catch_warnings():
-        warnings.simplefilter("ignore")   
+        warnings.simplefilter("ignore")
         eq_loads = [[((np.nansum(cycles * ampl_bin_mean ** _m) / _neq) ** (1. / _m)) for _m in np.atleast_1d(m)]  for _neq in np.atleast_1d(neq)]
     return eq_loads, cycles, ampl_bin_mean, ampl_bin_edges
 
@@ -160,7 +160,7 @@ def cycle_matrix(signals, ampl_bins=10, mean_bins=10, rainflow_func=rainflow_win
         ampl_bins = np.linspace(0, 1, num=ampl_bins + 1) * ampls[weights>0].max()
     cycles, ampl_edges, mean_edges = np.histogram2d(ampls, means, [ampl_bins, mean_bins], weights=weights)
     with warnings.catch_warnings():
-        warnings.simplefilter("ignore")     
+        warnings.simplefilter("ignore")
         ampl_bin_sum = np.histogram2d(ampls, means, [ampl_bins, mean_bins], weights=weights * ampls)[0]
         ampl_bin_mean = np.nanmean(ampl_bin_sum / np.where(cycles,cycles,np.nan),1)
         mean_bin_sum = np.histogram2d(ampls, means, [ampl_bins, mean_bins], weights=weights * means)[0]
@@ -169,6 +169,51 @@ def cycle_matrix(signals, ampl_bins=10, mean_bins=10, rainflow_func=rainflow_win
     return cycles, ampl_bin_mean, ampl_edges, mean_bin_mean, mean_edges
 
 
+def cycle_matrix2(signal, nrb_amp, nrb_mean, rainflow_func=rainflow_windap):
+    """
+    Same as wetb.fatigue_tools.fatigue.cycle_matrix but bin from min_amp to
+    max_amp instead of 0 to max_amp.
+
+    Parameters
+    ----------
+
+    Signal : ndarray(n)
+        1D Raw signal array
+
+    nrb_amp : int
+        Number of bins for the amplitudes
+
+    nrb_mean : int
+        Number of bins for the means
+
+    rainflow_func : {rainflow_windap, rainflow_astm}, optional
+        The rainflow counting function to use (default is rainflow_windap)
+
+    Returns
+    -------
+
+    cycles : ndarray, shape(ampl_bins, mean_bins)
+        A bi-dimensional histogram of load cycles(full cycles). Amplitudes are\
+        histogrammed along the first dimension and mean values are histogrammed
+        along the second dimension.
+
+    ampl_edges : ndarray, shape(no_bins+1,n)
+        The amplitude bin edges
+
+    mean_edges : ndarray, shape(no_bins+1,n)
+        The mean bin edges
+
+    """
+    bins = [nrb_amp, nrb_mean]
+    ampls, means = rainflow_func(signal)
+    weights = np.ones_like(ampls)
+    cycles, ampl_edges, mean_edges = np.histogram2d(ampls, means, bins,
+                                                    weights=weights)
+    cycles = cycles / 2  # to get full cycles
+
+    return cycles, ampl_edges, mean_edges
+
+
 if __name__ == "__main__":
     signal1 = np.array([-2.0, 0.0, 1.0, 0.0, -3.0, 0.0, 5.0, 0.0, -1.0, 0.0, 3.0, 0.0, -4.0, 0.0, 4.0, 0.0, -2.0])
     signal2 = signal1 * 1.1