我有一个小向量,其值必须按顺序计算,同时执行大型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
谢谢!
答案 0 :(得分:1)
您必须修复第三种情况以匹配以1开头的索引,然后不再需要前两种情况:
for k = 1:reps
cookie=cookie_jar(rem(k-1,length(cookie_jar))+1)
%...
end