Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Matlab中迭代变化的向量,而不是连续数?_Matlab_Vector_Literate Programming - Fatal编程技术网

如何在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)的给了我一系列连续的数字,我想要的是 为向量中的

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

例如,我有
[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做点什么。”