From 9db0bc33baac70eb9041ee23b1773fc0d6dceb19 Mon Sep 17 00:00:00 2001 From: dwc1c19 <d.w.carter@soton.ac.uk> Date: Fri, 28 May 2021 08:18:10 +0000 Subject: [PATCH] Replace epod.m --- epod.m | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/epod.m b/epod.m index 0b615a5..5bfee46 100644 --- a/epod.m +++ b/epod.m @@ -24,6 +24,8 @@ end % Convert to single to conserve memory g_1 = single(g_1); g_2 = single(g_2); + +% Make NaNs zeros % Compute the temporal correlation matrices C_g1 = g_1*g_1'; @@ -51,28 +53,24 @@ Sig_inv1 = diag(1./diag(Sig1)); Sig_inv2 = diag(1./diag(Sig2)); % Compute the random coefficients -a1 = psi1'*g_1; -a2 = psi2'*g_2; - -% Obtain the spatial modes -phi1 = Sig_inv1*a1; -phi2 = Sig_inv2*a2; +a1 = psi1*Sig1; +a2 = psi2*Sig2; -% Calculate the extended coefficients -b_1_2 = psi1'*g_2; -b_2_1 = psi2'*g_1; +% Calculate the extended modes (unscaled) +P_1_2 = a1*Sig_inv1*g_2; +P_2_1 = a2*Sig_inv2*g_1; % Obtain extended singular values -Sig_1_2 = diag(sqrt(sum(b_1_2.^2,2))); -Sig_2_1 = diag(sqrt(sum(b_2_1.^2,2))); +Sig_1_2 = sqrt(diag(P_1_2*P_1_2')); +Sig_2_1 = sqrt(diag(P_2_1*P_2_1')); % Obtain psuedo-inverse Sig_inv_1_2 = diag(1./diag(Sig_1_2)); Sig_inv_2_1 = diag(1./diag(Sig_2_1)); - -% Obtain extended spatial modes -phi_1_2 = Sig_inv_1_2*b_1_2; -phi_2_1 = Sig_inv_2_1*b_2_1; + +% Get extended modes (scaled) +phi_1_2 = Sig_inv_1_2*P_1_2; +phi_2_1 = Sig_inv_2_1*P_2_1; % Obtain temporal correlations nt = size(g_1,1); -- GitLab