Skip to content
Snippets Groups Projects
Commit 4b149fa3 authored by marwan's avatar marwan
Browse files

bugfixes: counting bins amd check for NaNs

parent 05fd9c47
No related branches found
No related tags found
No related merge requests found
......@@ -74,6 +74,11 @@ if ny < nx % zero-pad y if it has length less than x
y(nx) = 0;
end
% check for NaNs
if any(isnan(x(:,1)) + isnan(y(:,1)))
error('Data contains NaNs.')
end
maxlag = floor(nx/10);
window = floor(nx/10);
noverlap = 0;
......@@ -129,10 +134,10 @@ if verbose, h = waitbar(0,'Compute mutual information'); end
% -MAXLAG:0
[Yi dummy] = buffer(Y(:,1),window,noverlap,'nodelay');
if exist('accumarray','builtin') == 5
for i = 1:size(X,2), if verbose, waitbar(cnt/(2*size(X,2))), end
for i = 1:size(X,2), if verbose, waitbar(i/(2*size(X,2))), end
[Xi dummy] = buffer(X(:,i),window,noverlap,'nodelay');
C(cnt,:) = MI6(Xi, Yi, nbins);
cnt = cnt + 1;
C(i,:) = MI6(Xi, Yi, nbins);
%cnt = cnt + 1;
end
else
for i = 1:size(X,2), if verbose, waitbar(cnt/(2*size(X,2))), end
......@@ -141,14 +146,14 @@ else
cnt = cnt + 1;
end
end
cnt = size(X,2)-1;
% 0:MAXLAG
[Xi dummy] = buffer(X(:,end),window,noverlap,'nodelay');
if exist('accumarray','builtin') == 5
for i = 2:size(Y,2), if verbose, waitbar(cnt/(2*size(X,2))), end
[Yi dummy] = buffer(Y(:,i),window,noverlap,'nodelay');
C(cnt,:) = MI6(Xi, Yi, nbins);
cnt = cnt + 1;
C(i+cnt,:) = MI6(Xi, Yi, nbins);
% cnt = cnt + 1;
end
else
for i = 2:size(Y,2), if verbose, waitbar(cnt/(2*size(X,2))), end
......@@ -203,7 +208,7 @@ function Z = MI6(x, y, nbins)
x = floor(x * nbins) + 1;
y = floor(y * nbins) + 1;
% compute probabilities
Z = zeros(1,size(x,2));
for i = 1:size(x,2)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment