How can I optimize this code for vector normalization?
Mostrar comentarios más antiguos
Hi, I implemented this code in order to do the vector normalization of raman intensities. It works, but it is very slow.
%% Vector normalization
% PASSO 1: Calcolare i valori di intensità media per tutti i numeri d'onda
% Le intensità sono salvate in Spectra2
% I ramanshift della fingerprint sono 420
int_FP = load("int_FP.csv");
k = length(int_FP);
nn= size(int_FP);
n= nn(2);
am = zeros(1,n);
corr = zeros(k,1);
for i=1:n
for ii=1:k
corr(ii) = int_FP(ii,i);
end
am(i) = sum(corr);
am(i) = am(i)/k;
end
% PASSO 2: Sottraggo alle intensità l'intensità media
clear i ii;
a_k = zeros(k,n);
for ii=1:n
for i=1:k
a_k(i,ii) = int_FP(i,ii) - am(ii)
end
end
% PASSO 3:
% Implementare la formula aa_k = a_k/(rad(sum(a_k)^2))
clear i ii corr;
corr = zeros(k,1);
den = zeros(1,n);
for i=1:n
for ii=1:k
corr(ii) = a_k(ii,i);
end
den(i) = sqrt(sum((corr).^2));
end
clear i ii;
aa_k = zeros(k,n);
for ii=1:n
for i=1:k
aa_k(i,ii) = (a_k(i,ii))./den(ii);
end
end
% Verifica algoritmo
clear i ii;
corr = zeros(k,1);
leng = zeros(1,n);
for i=1:n
for ii=1:k
corr(ii) = aa_k(ii,i);
end
leng(i) = sum((corr).^2);
% leng è 1 per ogni spettro!
end
int_FP = aa_k;
How can I optimize this code?
Thanks to anyone who wants to help me.
Respuesta aceptada
Más respuestas (0)
Categorías
Más información sobre Loops and Conditional Statements en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!