0

我是 MATLAB 的初学者。我需要创建一个循环,该循环将从矩阵中选择多个滚动连续行并生成一个新矩阵,该矩阵将在列中显示所选行的元素。例如:

一个=

 1     2     3
 4     5     6
 7     8     9
10    11    12

loop = 2 ,意思是选择连续2行的滚动,第1行&2行2&3第3&4行,)

预期结果将是以下矩阵: b =

 1     4     7
 2     5     8
 3     6     9
 4     7    10
 5     8    11
 6     9    12

所选行的元素应放置在新矩阵的列中。

无论如何我可以做到这一点?

谢谢

4

1 回答 1

0

这取决于您想要使其具有多通用性。您的问题中有很多不言而喻的假设,而“滚动”是一个模棱两可的术语。对于您的具体情况,对于输入矩阵 A,“循环”= n:

function B = rollup(A,n)
B = [];
for i = 1:n
   Btemp = transpose(A(i:i+2,:));
   B = [B;Btemp];
end

请注意,这仅适用于您具有三列的非常具体的情况,并且您不能有 n > l-2 其中 l 是行数。

于 2012-05-23T16:25:23.913 回答