Matrix Multiplikation < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Hallo!
Ich tüftle gerade etwas mit Matrixmultiplikationen herum, aber das folgende Beispiel habe ich nur sehr langatmig (damit meine ich dass das verfahren zu langsam ist) implementiert.
Hier ist die Multiplikation schematisch dargestellt:
[Dateianhang nicht öffentlich]
Alternativ: Link zum Bild
Ich will also convolution anwenden.
sprich:
x'_{i,j} = [mm] \sum_{k=-1}^{1} \sum_{l=-1}^{1} A_{i+k,j+k} [/mm] . x{i+k,j+l}
Das ganze funktoniert normalerweise mit conv2, aber nun habe ich statt koeffizienten, funktionen in der matrix A, welche wiederum von [mm] x_{i,j} [/mm] und [mm] x_{i+k,k+l} [/mm] abhängig sind.
Anbei mal mein aktueller (sehr sehr sehr prototypischer) Code:
1: |
| 2: | for i = 1:rows_x;
| 3: | for j = 1:columns_x;
| 4: |
| 5: | if (i-1 > 0 && j-1 > 0)
| 6: | y_kl = pwlsig(x(i-1,j-1));
| 7: | tmp(i,j) = tmp(i,j) + globmax(x(i,j),y_kl) * y_kl;
| 8: | end;
| 9: |
| 10: | if (i-1 >= 1)
| 11: | y_kl = pwlsig(x(i-1,j));
| 12: | tmp(i,j) = tmp(i,j) + globmax(x(i,j),y_kl) * y_kl;
| 13: | end;
| 14: |
| 15: | if (i-1 > 0 && j+1 <= columns_x)
| 16: | y_kl = pwlsig(x(i-1,j+1));
| 17: | tmp(i,j) = tmp(i,j) + globmax(x(i,j),y_kl) * y_kl;
| 18: | end;
| 19: |
| 20: |
| 21: | if (j-1 > 0)
| 22: | y_kl = pwlsig(x(i,j-1));
| 23: | tmp(i,j) = tmp(i,j) + globmax(x(i,j),y_kl) * y_kl;
| 24: | end;
| 25: |
| 26: | y_kl = pwlsig(x(i,j));
| 27: | tmp(i,j) = tmp(i,j) + y_kl;
| 28: |
| 29: | if (j+1 <= columns_x)
| 30: | y_kl = pwlsig(x(i,j+1));
| 31: | tmp(i,j) = tmp(i,j) + globmax(x(i,j),y_kl) * y_kl;
| 32: | end;
| 33: |
| 34: |
| 35: | if (i+1 <= rows_x && j-1 > 0)
| 36: | y_kl = pwlsig(x(i+1,j-1));
| 37: | tmp(i,j) = tmp(i,j) + globmax(x(i,j),y_kl) * y_kl;
| 38: | end;
| 39: |
| 40: | if (i+1 <= rows_x)
| 41: | y_kl = pwlsig(x(i+1,j));
| 42: | tmp(i,j) = tmp(i,j) + globmax(x(i,j),y_kl) * y_kl;
| 43: | end;
| 44: |
| 45: | if (i+1 <= rows_x && j+1 <= columns_x)
| 46: | y_kl = pwlsig(x(i+1,j+1));
| 47: | tmp(i,j) = tmp(i,j) + globmax(x(i,j),y_kl) * y_kl;
| 48: | end;
| 49: | end;
| 50: | end;
| 51: |
|
Dateianhänge: Anhang Nr. 1 (Typ: png) [nicht öffentlich]
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 16:20 Sa 19.12.2009 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|