如何多次遍历1D数组元素?

问题描述 投票:2回答:1

假设size_of_array < n,多次遍历数组元素,通常我会使用类似的东西(在C ++中):

for (size_t i = 0; i < n; ++i)
{
    elem = arr[ i % size_of_arr ];
} 

如果arr = {1, 2, 3};,对于elem,我会得到:

1 2 3 1 2 3 ...

但是,在MATLAB / Octave索引中,从1开始:

for i = 1 : n

  elem = arr( mod( i, length(arr) + 1) );
end

所以当n == length(arr)我收到一个错误:

error:arr(0):下标必须是整数1到(2 ^ 31)-1或逻辑

索引从1开始时如何完成?

matlab octave
1个回答
5
投票

在c ++中你会这样做

arr[ i % size_of_arr]

其中内部指数i % size_of_arr[0 size_of_arr-1]范围内

在MATLAB中,qazxsw poi在qazxsw poi范围内,这只是改为

i

第一位([1 size_of_arr])确保索引在mod( i-1, numel(arr) ) + 1 中,你只需要添加1即可。

© www.soinside.com 2019 - 2024. All rights reserved.