【发布时间】:2012-04-29 10:23:02
【问题描述】:
这是一段 Matlab 代码。它工作得很慢。有没有办法让它更快地工作?我不知道如何对其进行矢量化。也许它可以写成某种过滤器?
...
for uu=2:length(x)-2;
for vv= 2:length(y)-2;
P1=[x(uu+1) y(vv) temp(uu+1,vv)];
P2=[x(uu) y(vv+1) temp(uu,vv+1)];
P3=[x(uu-1),y(vv) temp(uu-1,vv)];
P4=[x(uu) y(vv-1) temp(uu,vv-1)];
cr=cross((P1-P3),(P2-P4));
cr=cr/norm(cr);
theta=acos(dot([0,0,1],px))*180/pi;
...
end
end
...
【问题讨论】:
-
什么是
px?theta的定义似乎与所有其他内容无关 -
您想要实现的输出是什么?使用嵌套的 for 循环,您可能需要某种 2d 输出,但无法按照示例说明来判断
标签: matlab loops vectorization