Da ich gehört habe, dass Schleifen eine allgemeine schlechte in Matlab, versuche ich, meinen Code zu vektorisieren.Wie man corrcoeff in Matlab "vektorisiert"?
Ich habe den folgenden Code:
for dp_point = 1:useDPs
cc = corrcoef(Traces(:,dp_point), hws(:,dp_point));
delta(dp_point) = cc(2);
end;
Diese mit der Größe von 1 x useDPs eine Deltamatrix erzeugt, wobei useDPs bis zu 1.000.000
geht Er berechnet den Korrelationskoeffizienten für jede Spalte und speichert es in Delta, also ist es eine sehr lange Schleife und ich möchte es für Matlab optimieren.
Was ich versuchte:
delta = corrcoef(Traces(:,1:useDPs), hws(:,1:useDPs));
Aber das schafft eine 2 x 2-Matrix (es die korr Koeff der ganzen Matrizes berechnet, nicht für jede Spalte). Es ist also offensichtlich ein falscher Versuch.
Meine Frage ist also, ist es möglich, diese Schleife überhaupt zu "vektorisieren" (oder anderweitig zu optimieren)?
Versuchen Sie es auf einer kleinen Teilmenge und lassen Sie uns wissen, wie es geht. –
Es könnte auch helfen, die Dokumente zu lesen. Geben Sie beispielsweise 'doc corrcoeff' in der Befehlszeile ein. –
Was soll ich versuchen? Mein "kann ich so etwas schreiben" funktioniert natürlich nicht. –