如何生成包含n
行和1st row 1 2 3 L n-1 n
2nd 2 3 4 L n 1
3rd 3 4 5 n-1 1 2
Nth M M M ....
N-1 m-1 m m+1 L m-3 m-2
last m m+1 m+2 l m-2 m-1
列的以下矩阵?
Car
答案 0 :(得分:2)
很难从你的描述中看出来,但似乎你想要创建一个矩阵,其中第一行是1:n
,每个连续的行是前一行左边的循环移位。如果是这样,您仍然可以使用hankel
(如their answer中的Dev-iL提及的那样),但是如此包含remainder operation:
n = 5;
m = 8;
mat = rem(hankel(0:(m-1), (m-1):(m+n-2)), n)+1
mat =
1 2 3 4 5
2 3 4 5 1
3 4 5 1 2
4 5 1 2 3
5 1 2 3 4
1 2 3 4 5
2 3 4 5 1
3 4 5 1 2
答案 1 :(得分:1)
这看起来像Hankel matrix。您应该使用2输入语法,
H = hankel(c,r)
例如,我们得到m = 4
和n = 5
:
m = 4; n = 5;
X = hankel( 1:m, m:m+n-1 )
X =
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8