0

如何创建一个 201x 201 矩阵,其中所有奇数行交替为 3、1、3,偶数行交替为 1、2、1、2。我尝试使用随机数生成器、for 循环,并且正在考虑使用 find 命令。我正在尝试生成一个矩阵,但我收到了错误消息。

4

3 回答 3

5

如果我正确理解您的意思,那么 Kronecker 产品 ( kron) 是实现此目的的最简单方法:

A = kron( ones(101), [3 1; 1 2]);
A = A(1:201, 1:201); 

第一个命令根据您的要求创建一个 202x202 矩阵,第二个命令切掉 1 行和 1 列以符合 201x201 大小规范。

于 2012-09-10T18:06:15.850 回答
3

使用repmat和矩阵连接:

rowodd =[repmat([3 1],1,100) 3];
roweven=[repmat([1 2],1,100) 1];

mat = [repmat([rowodd;roweven],100,1) ; rowodd];
于 2012-09-10T18:06:23.843 回答
2

您还可以使用meshgrid和 为您提供所需结果矩阵的数学函数来创建矩阵:

[X, Y] = meshgrid(1:201, 1:201);
Matrix = 2*mod(X,2) - 2*mod(Y+1,2) + 3*(mod(X+1,2).*mod(Y+1,2)) + 1;
于 2012-09-10T20:39:21.867 回答