如何在数组的3个元素上循环



我试图创建一个循环,一次从数组中选择3行,然后进行一些计算。

例如:

阵列=[2 3 4;4 5 6;7 8 9;10 11 23;23 56 78;67 55 89;90 87 32]

因此,在第一个循环中,它应该选择[2 3 4;4 5 6;7 8 9]

以及在第二个循环[10 11 23;23 56 78;67 55 89]中。

我正在努力使这成为可能。

希望代码帮助:

clear, clc
% Array 
Arr = [2 3 4; 4 5 6; 7 8 9; 10 11 23; 23 56 78; 67 55 89; 90 87 32];
% Define The Length to Prevent the Error of Iteration in For Loop
if mod(size(Arr,1),3) ==0
    LenArr = size(Arr,1); % Length Examined 
else
    LenArr = size(Arr,1) - mod(size(Arr,1),3);
end
Counter = 1;  
for i = 1:3: LenArr
    Iter = Arr(i:i+2, :); % Here the Answer of the Question 
    % Disply Results ----------
    fprintf('Iteration %d = n',Counter)  
    disp(Iter)
    Counter = Counter+1;
    %--------------------------
end

结果:

Iteration 1 = 
     2     3     4
     4     5     6
     7     8     9
Iteration 2 = 
    10    11    23
    23    56    78
    67    55    89

您可以像下面的代码一样执行此操作

您的算法可以应用于selectBlockLocations变量。

array = [2 3 4; 4 5 6; 7 8 9; 10 11 23; 23 56 78; 67 55 89; 90 87 32];
number_of_loop = floor(length(array)/3);
for i=0:number_of_loop-1
    selectBlockLocations = array(i*3+1:i*3+3, 1:end);
    disp(selectBlockLocations)
end

结果:

 2     3     4
 4     5     6
 7     8     9
10    11    23
23    56    78
67    55    89

祝你玩得愉快!

相关内容

  • 没有找到相关文章

最新更新