用于选择矩阵的连续滚动行的循环

时间:2012-05-23 14:02:47

标签: matlab loops for-loop matrix

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

a =

 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

所选行的元素应放在新的matric列中。

无论如何我可以这样做?

感谢

1 个答案:

答案 0 :(得分:0)

这取决于你想要的一般程度。你的问题中有很多不言而喻的假设,“滚动”是一个含糊不清的术语。对于您的特定情况,对于输入矩阵A,“loop”= 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是行数。