根据一些规则创建矩阵

时间:2018-06-12 16:07:53

标签: matlab matrix

如何生成包含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

2 个答案:

答案 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 = 4n = 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