【发布时间】:2014-06-09 21:32:02
【问题描述】:
我有一个小向量,它的值需要在执行大 for 循环时按顺序计算。每次 for 循环执行时,它会依次从向量索引 1 移动到 end 然后重置,直到 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
谢谢!
【问题讨论】:
-
如果您对这个问题投了反对票,请说明原因,以便提问者知道以后要避免问什么类型的问题。更好的反馈可以为您带来更好的问题。
-
我没有投反对票,但您的描述过于复杂并且包含许多不相关的细节。考虑这个问题:“我有一个小向量,它的值需要在执行大 for 循环时按顺序计算。每次执行 for 循环时,它将按顺序从向量索引 1 移动到结束,然后重置直到 for循环完全执行。对于输入向量
[1,3,7],循环应使用值 1,3,7,1,3,7..."。这将是一个更简短的问题,其中包含所有相关信息。 -
优秀的点和很棒的评论。我实施了您建议的更改。感谢您的建设性批评!