如何在Matlab中使用两个样本循环数组?

时间:2016-03-05 11:38:52

标签: arrays matlab for-loop

我想一次从数组constants中取两个常量,因为我不希望逐个执行这些常量,因为它很耗时;相反,我比较它们引起的变化,只有在两个常数的效果之间有很大的变化时才会做出反应。 我在Matlab 2016a中一次在数组constant中循环一个样本constants

constants=[45 90 180 360 720 1440 2880 5760]';
for constant=constants

...

end

但是,我想通过一个循环一次取两个常量,比如伪代码

for constant1,constant2=constants

...

end

如何在Matlab的一个for循环中从constants获取两个常量?

1 个答案:

答案 0 :(得分:1)

这样的东西?

for index = 1:length(constants) - 1
    c1 = constants(index);
    c2 = constants(index + 1);
end

另一种选择是定义一个函数,将每个元素与数组中的下一个元素配对 -

function result = pairAdjacent(array)
    result = [array(1:end-1) ; array(2:end)];
end

然后再做

for constant = pairAdjacent(constants)
    c1 = constant(1);
    c2 = constant(2);
end

回想一下,当你使用符号

for elem = array
    // Now elem is a single column from array
end

变量elem已连续分配给array的每个,因此您的数组constants需要为1xN数组才能使其正常工作正确。