如果没有例子,这个问题很难解释。
说我有一个矢量,
v = [1 1 1 0 0];
我想循环遍历 v 的每个元素,直到我结束,然后再从头开始等,即向量重复。
for i = 1:300
answer = v(i);
end
有没有办法让这项工作没有用向量的重复版本替换vector v :
v2 = [1 1 1 0 0 1 1 1 0 0 1 1 ...];
(我想避免在存储器中存储长矢量)
答案 0 :(得分:3)
因此,如果您只是尝试复制矩阵,请使用repmat
(假设:n = 300; m = numel(v);
)
v2 = repmat(v1, 1, (n/m))
但是,如果您要问如何通过向量一次一个元素来循环索引,60次(无论出于何种原因),那么您可以使用mod
来完成:
for i = mod(0:(n-1), m)+1
%// do stuff with v(i)
end
或者更明确(也更容易阅读)的明显解决方案是嵌套循环:
for j = 1:(n/m)
for i = 1:m;
%// do stuff with v(i)
end
end