for-Schleife umgehen < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 05:57 Mo 02.10.2006 | Autor: | pAt84 |
Hallo,
ich habe hier folgende for - Schleife:
for i=1:vec_picsize(1)
for j=2:vec_picsize(2)-1
slope = abs( (mat_BWd(i,j+1) - mat_BWd(i,j-1)) );
mat_derx(i,j-1) = slope;
end
end
das ganze Berechnet eine der zwei ersten partiellen Ableitungen eines grauwertigen Bildes.
Wie kann ich das ganze ohne for-Schleifen ausdrücken? Ich dachte zuerst daran, einfach zwei weitere Matrizen zu erzeugen die einfach jeweils um eine Spalte verschoben sind. Leider weiß ich auch nicht, wie das geht.
Vielen Dank
Patrick
|
|
|
|
Hallo,
deine Berechnung lässt sich auf folgende Weise bewerkstelligen:
mat_derx = abs(mat_BWd(1:end,3:end) - mat_BWd(1:end,1:end-2));
Für Matrizenberehnungen ist der Platzhalter end unerlässlich. So kann man auf die lästige Bestimmung der Matrixgröße verzichten (meistens).
Gruß
Martin
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 04:53 Di 03.10.2006 | Autor: | pAt84 |
Ah, mit end geht das also.
Tausend Dank!
|
|
|
|