Hallo,
ich arbeite jetzt seit ca 2 Wochen mit MATLAB und irgendwie wurde das Programm immer träger. Bis ich dann irgendwann herausgefunden habe, dass MATLAB wohl gar nicht so gut mit Schleifen kann... Und davon hab ich leider einige.
Könnt ihr mir Tipps geben wie man beim Vektorisieren vorgehen sollte? Irgendwie habe ich keinen Peil wie ich da anfangen soll.
Meine am langsamste Schleife iteriert momentan über eine Bildmatrix und führt dann Operationen abhängig von der Position des Pixels und einer weiteren Position, sowie dem Gradient des Bildes aus, also in etwa so
Wie beschleunige ich dies nun am geschicktesten?
Ich hoffe ihr könnt mir helfen
ich arbeite jetzt seit ca 2 Wochen mit MATLAB und irgendwie wurde das Programm immer träger. Bis ich dann irgendwann herausgefunden habe, dass MATLAB wohl gar nicht so gut mit Schleifen kann... Und davon hab ich leider einige.
Könnt ihr mir Tipps geben wie man beim Vektorisieren vorgehen sollte? Irgendwie habe ich keinen Peil wie ich da anfangen soll.
Meine am langsamste Schleife iteriert momentan über eine Bildmatrix und führt dann Operationen abhängig von der Position des Pixels und einer weiteren Position, sowie dem Gradient des Bildes aus, also in etwa so
Code:
for x=1:size(gX,2)
for y=1:size(gY,1)
distance = ([x-t(1) y-t(2)]);
distance = distance/(norm(distance));
grad = [gX(yi,xi) gY(yi,xi)];
d = max(0, dot(grad, distance));
obj = obj +d^2;
end
end
Ich hoffe ihr könnt mir helfen