diff --git a/fsl/utils/memoize.py b/fsl/utils/memoize.py index 8f56a1a61eb9fa3346da69a27d3da13fdccc0b5d..9f56d4ceaad7f87346e91b4b4b3f709cc4ba6f7d 100644 --- a/fsl/utils/memoize.py +++ b/fsl/utils/memoize.py @@ -143,8 +143,13 @@ def skipUnchanged(func): newIsArray = isinstance(value, np.ndarray) isarray = oldIsArray or newIsArray - if isarray: nochange = np.all(oldVal == value) - else: nochange = oldVal == value + if isarray: + a = np.array(oldVal, copy=False) + b = np.array(value, copy=False) + + nochange = (a.shape == b.shape) and np.allclose(a, b) + else: + nochange = oldVal == value if nochange: return False