Avendo come input una matrice X di 32 canali x 30000 samples, voglio modificare i prodotti sottolineati da scalari a vettoriali.
-Xw = X0' * V * D;
-yi = Xw * W(i, :)';
-deltaWi = (Xw' * G1(yi)) / m - (g1(yi) / n) * W(i, :);
qui come sistemo la divisione con n?? (n=32)
- deltaWi = deltaWi - (W(1:i-1, :) * deltaWi')' * W(1:i-1, :);
covMatrix = X0 * X0' / size(X0, 2);
[V, eigVals] = eig(covMatrix);
D = diag(sqrt(1 ./ diag(eigVals)));
G1 = @(u) (1/a1) * log(cosh(a1 * u));
G2 = @(u) -exp(-u.^2 / 2);
g2 = @(u) u .* exp(-u.^2 / 2);
for iteration = 1:maxiterations
yi = cross(Xw, W(i, :)');
deltaWi = (Xw' * G1(yi)) / m - (g1(yi) / n) * W(i, :);
deltaWi = deltaWi - (W(1:i-1, :) * deltaWi')' * W(1:i-1, :);
W(i, :) = W(i, :) / norm(W(i, :));
error = max(max(abs(W - WP)));