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]);