如何迭代Matlab中的变化向量,而不是连续数?

xim*_*imu 1 matlab vector literate-programming

我是matlab的初学者.现在我想要一个循环,这样它就可以迭代一个向量(不是连续的数字),它通过迭代包含数量减少的元素.

例如,我[1; 2 ;3; 4](将其视为1,2,3,4号人物)然后我想做一些事情,例如第1和第4人获得食物,第2和第3人没有食物.

在下一轮中,我希望第2和第3人(未分配的人)再次完成分配过程但不是1和4.所以我创建了一个向量[2; 3]以跟踪那些没有食物的人.

然而,for i=1:length(vector)给我一系列连续的数字,我想要的是

for i in vector do something; end

怎么实现这个?

当我刚刚放

i=vector,
Run Code Online (Sandbox Code Playgroud)

Matlab说Index超过了矩阵维度

nic*_*ale 5

如果要循环遍历任意向量,只需在for循环中直接使用该向量即可.例如:

vector = [3, 4, 7, 1, 1]

for i = vector
    disp(i)
end
Run Code Online (Sandbox Code Playgroud)

将输出3 4 7 1 1.这相当于"for vector in vector do something".