如何在matlab中减少for循环

时间:2012-03-12 08:46:17

标签: matlab math

我有这样一个功能:

  

A(X,Y,Z,T)= A(X,Y,Z,T-1)+ A(X,Y,Z-1,T)+ A(X,Y,Z + 1, T-1)

y,z和t是我的数据向量,但是我必须在Matlab中实现具有四个for循环的网格上的函数,并且它非常慢。由于连续性,我无法对其进行矢量化。你能告诉我什么吗?

1 个答案:

答案 0 :(得分:1)

我相信在您的示例中,以下代码可以在没有任何for循环的情况下完成您想要的任务:

A = circshift(A,[0,0,0,-1]) + circshift(A,[0,0,-1,0]) + circshift(A,[0,0,1,-1])

如果您想要循环移位,这将有效。否则,我认为你必须用零填充然后删除后缀填充。