diff --git a/tighten.m b/tighten.m
new file mode 100644
index 0000000000000000000000000000000000000000..b18f76cb488eb030b980e5b29e91bb6ebc007573
--- /dev/null
+++ b/tighten.m
@@ -0,0 +1,22 @@
+function [Value,gv] = tighten(Value,varargin)
+%TIGHTEN Summary of this function goes here
+%   Detailed explanation goes here
+
+if nargin>1
+    Mask = varargin{1};
+elseif islogical(Value)
+    Mask = Value;
+else
+    Mask = ~isnan(Value);
+end
+
+numdims = ndims(Mask);
+gv = cell(1,numdims);
+for dim = 1:numdims
+    M = any(Mask,setdiff(1:numdims,dim));
+    gv{dim} = find(M,1,'first'):find(M,1,'last');
+end
+
+Value = Value(gv{:});
+
+end
\ No newline at end of file