MATLAB在一个大的for循环中按顺序循环矢量值

时间:2014-06-09 21:32:02

标签: matlab for-loop vector

我有一个小向量,其值必须按顺序计算,同时执行大型for循环。每次执行for循环时,它会从向量索引1顺序移动到结束然后重置,直到for循环完全执行。

例如,如果向量为[4 2 1]并且for循环执行 n 次,则索引值将为4,2,1,4,2,1,4,2 ,1 ......等。

我想知道是否有办法优化或缩小我开发的代码,或者即使有其他方法可以完成任务,也可以更简单。

这是我的代码:

cookie_jar = [prt/4 prt/2 prt];
...
for k = 1:reps;


    if k <= length(cookie_jar);
        cookie = cookie_jar(k);
    elseif rem(k,length(cookie_jar)) == 0
        cookie = cookie_jar(end);
    else 
        cookie = cookie_jar(rem(k,length(cookie_jar))); 
    end

end

谢谢!

1 个答案:

答案 0 :(得分:1)

您必须修复第三种情况以匹配以1开头的索引,然后不再需要前两种情况:

for k = 1:reps
   cookie=cookie_jar(rem(k-1,length(cookie_jar))+1)
   %...
end