diff --git a/LFtoSR.m b/LFtoSR.m
index 1cc7590a4d6d8df0d10154245c99dfb593bc9d27..0b743e94f6dd84b983e7d75f4425845be0ffe57c 100644
--- a/LFtoSR.m
+++ b/LFtoSR.m
@@ -112,10 +112,7 @@ for lab = 1:numLab
         LFXsub = LFX(mgv{:},v);
         LFYsub = LFY(mgv{:},v);
         
-        [Xq,Yq,LFXsub,LFYsub] = utils.gridCoords(LFXsub,LFYsub,SRXq,SRYq);
-        
-        LFXsub = LFXsub(:);
-        LFYsub = LFYsub(:);
+        [LFXsub,LFYsub,Xq,Yq] = utils.gridCoords(LFXsub,LFYsub,SRXq,SRYq);
         
         M = isnan(Xq)|isnan(Yq);
         
@@ -125,28 +122,25 @@ for lab = 1:numLab
         % Interpolate color
         for c = 1:numChan
             Colsub = Color(mgv{:},c,v);
-            Colsub = Colsub(:);
-            temp = griddata(LFXsub,LFYsub,Colsub,Xq,Yq,Method);
+            temp = interp2(LFYsub,LFXsub,Colsub,Yq,Xq,Method);
             temp(M) = nan;
             SRCol{lab}(:,:,c,v) = temp;
         end
         
         % Interpolate disparity
         LFDispsub = LFDisp(mgv{:},v);
-        LFDispsub = LFDispsub(:);
-        temp = griddata(LFXsub,LFYsub,LFDispsub,Xq,Yq,Method);
+        temp = interp2(LFYsub,LFXsub,LFDispsub,Yq,Xq,Method);
         temp(M) = nan;
         SRDisp{lab}(:,:,1,v) = temp;
         
         % Interpolate label
         Labelsub = Label(mgv{:},v);
-        Labelsub = Labelsub(:);
-        temp = griddata(LFXsub,LFYsub,Labelsub,Xq,Yq,'nearest');
+        temp = interp2(LFYsub,LFXsub,Labelsub,Yq,Xq,'nearest');
         temp(M) = nan;
         Lab = temp;
         
         % Replace out of boundary values in label using cubic interpolation
-        NaNLab = isnan(griddata(LFXsub,LFYsub,Labelsub,Xq,Yq,'cubic'));
+        NaNLab = isnan(interp2(LFYsub,LFXsub,Labelsub,Yq,Xq,'cubic'));
         Lab(NaNLab) = nan;
         SRLab{lab}(:,:,1,v) = Lab;
     end