diff --git a/matlab/cosn.m b/matlab/cosn.m
index 6e9674fdab820843c6d49bcc1e367f6596bab78c..216efd19388339ac1a0927b53c6125cb5d2716a3 100644
--- a/matlab/cosn.m
+++ b/matlab/cosn.m
@@ -28,6 +28,9 @@ y = H(:,1);
 X = H(:,2:end);
 
 b=(X\y);
+if any(isnan(b)) || any(isinf(b)),
+    b=0;
+end
 yhat =  X*b;
 if rank(yhat),
     co = abs(y'*yhat/sqrt((y'*y)*(yhat'*yhat)));
diff --git a/matlab/ident_bruteforce.m b/matlab/ident_bruteforce.m
index 344fd408d3abfa5a876e6e0d84bfefb6e067cfc0..592ffcd07c119c17cdb57814ec1217a3bebc4b91 100644
--- a/matlab/ident_bruteforce.m
+++ b/matlab/ident_bruteforce.m
@@ -56,7 +56,8 @@ for ll = 1:n,
                 pars{ii,ll} = [pars{ii,ll-1} NaN];
                 cosnJ(ii,ll) = cosnJ(ii,ll-1);
             else
-                pars{ii,ll} = tmp2(find(cosnJ2(:,1)==max(cosnJ2(:,1))),:);
+                tmp3 = tmp2(find(cosnJ2(:,1)==max(cosnJ2(:,1))),:);
+                pars{ii,ll} = tmp3(1,:);
             end
         else
             pars{ii,ll} = NaN(1,ll);
diff --git a/matlab/identification_analysis.m b/matlab/identification_analysis.m
index 9f0c245f5f1f6a39f0fcdc6ff798cc28233080c9..12862b7df25148b1bad1c3b68a2609c38201c56d 100644
--- a/matlab/identification_analysis.m
+++ b/matlab/identification_analysis.m
@@ -284,6 +284,7 @@ if info(1)==0,
     normJ=1;
     [U, S, V]=svd(JJ(indJJ,:)./normJ,0);
     S=diag(S);
+    S=[S;zeros(size(JJ,2)-length(indJJ),1)];
     if nparam>8
         ide_moments.S = S([1:4, end-3:end]);
         ide_moments.V = V(:,[1:4, end-3:end]);