How can I optimize this code for vector normalization?
Show older comments
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.
Accepted Answer
More Answers (0)
Categories
Find more on Loops and Conditional Statements in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!