我是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列中。
无论如何我可以这样做?
感谢
答案 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是行数。