如何在Matlab中迭代变化的向量,而不是连续数?
我真的是matlab的初学者。现在我想要一个循环,这样它就可以在一个向量(不是连续的数字)上迭代,这个向量通过迭代包含的元素数量会减少 例如,我有如何在Matlab中迭代变化的向量,而不是连续数?,matlab,vector,literate-programming,Matlab,Vector,Literate Programming,我真的是matlab的初学者。现在我想要一个循环,这样它就可以在一个向量(不是连续的数字)上迭代,这个向量通过迭代包含的元素数量会减少 例如,我有[1;2;3;4](将其视为人1、2、3、4) 然后我想做一些事情,比如说,第一个人和第四个人得到食物,第二个人和第三个人没有食物 在下一轮中,我希望人员2和3(未分配的人员)再次完成分配过程,而不是1和4。 所以我创建了一个向量[2;3]来跟踪那些没有食物的人 然而,i=1:length(vector)的给了我一系列连续的数字,我想要的是 为向量中的
[1;2;3;4]
(将其视为人1、2、3、4)
然后我想做一些事情,比如说,第一个人和第四个人得到食物,第二个人和第三个人没有食物
在下一轮中,我希望人员2和3(未分配的人员)再次完成分配过程,而不是1和4。
所以我创建了一个向量[2;3]来跟踪那些没有食物的人
然而,i=1:length(vector)的给了我一系列连续的数字,我想要的是
为向量中的i做点什么;结束
如何实现这一点
当我刚把
i=vector,
Matlab表示i=1时索引超过了矩阵维数:长度(向量)
将为向量提供索引-它将始终是连续的,因为它表示向量的第一个..最后一个
位置
听起来你想从向量中得到一个标识符。您可以在现有循环中执行此操作:id=vector[i]
对于i=1:length(vector)
为向量提供索引-它始终是连续的,因为它表示向量的first..last
位置
听起来你想从向量中得到一个标识符。您可以在现有循环中执行此操作:id=vector[i]
您考虑过使用Matlab结构吗
s = struct(field1,value1,...,fieldN,valueN)
你可以有一个结构(person类型)的数组“people”,你可以在其中循环
for i=1:length(people)
if people(i).HasBeenFeed = False
% feed this person...
end
end
你想过使用Matlab结构吗
s = struct(field1,value1,...,fieldN,valueN)
你可以有一个结构(person类型)的数组“people”,你可以在其中循环
for i=1:length(people)
if people(i).HasBeenFeed = False
% feed this person...
end
end
如果您想要循环通过任意向量,只需在for循环中直接使用该向量。例如:
vector = [3, 4, 7, 1, 1]
for i = vector
disp(i)
end
将输出34711
。这相当于“for i in vector do something.”如果要循环任意向量,只需在for循环中直接使用该向量即可。例如:
vector = [3, 4, 7, 1, 1]
for i = vector
disp(i)
end
将输出34711
。这相当于“为向量中的i做点什么。”