Hallo liebes Forum, kann man folgenden Ausdruck in matlab auf effizienter ausführen?
1 | for k=1:1:size(CD,1) |
2 | NORMCD(k) = norm(CD(k,:)); |
3 | end |
Ich meine speziell ob sich die Schleife durch Matrixoperationen ersetzen lässt. Viele Grüße Sepp
|
Forum: PC-Programmierung geht das auch effizienter in Matlab?Hallo liebes Forum, kann man folgenden Ausdruck in matlab auf effizienter ausführen?
Ich meine speziell ob sich die Schleife durch Matrixoperationen ersetzen lässt. Viele Grüße Sepp Zur Erklärung NORMCD ist ein Vektor der Dimension n CD ist eine Matrix der Dimension n x m Wenn es eine 2-Norm ist: müsste das nicht mit CD2 = CD .* CD norm2CD = sum(CD2, 2) normCD = sqrt(norm2CD) gehen? ich bin mir über die syntax von sum nicht sicher, aber ich meine, dass man da eine dimension angeben kann Hallo, als Beispiel nehme ich: Z = [1,2,3; 4,5,6]; Die Komponenten des gesuchten Vektors lauten dann: sqrt(1^2+2^2+3^2) = sqrt(14) = 3.7417 sqrt(4^2+5^2+6^2) = sqrt(77) = 8.775 Folgendermaßen kannst Du rechnen: sqrt(sum(Z.*Z,2)); .* bedeutet komponentenweise Multiplikation ,2 bei der Summe bedeutet, daß die Summation über die Zeilen erfolgt Gruß, Michael Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.
|
|