gpt4 book ai didi

matlab - 如何多次循环一维数组元素?

转载 作者:行者123 更新时间:2023-12-02 02:48:47 27 4
gpt4 key购买 nike

假设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): subscripts must be either integers 1 to (2^31)-1 or logicals

当索引从 1 开始时,这是如何完成的?

最佳答案

在 C++ 中你会这样做

arr[ i % size_of_arr]

其中内部索引 i % size_of_arr 位于范围 [0 size_of_arr-1]

在 MATLAB 中,i[1 size_of_arr] 范围内,因此只需更改为

mod( i-1, numel(arr) ) + 1

第一位 (mod( i-1, numel(arr))) 确保索引位于 [0 size_of_arr-1] 内,并且您只需要加 1 即可。

关于matlab - 如何多次循环一维数组元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46058348/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com