0

すべての奇数行が 3、1、3 のように交互になり、偶数行が 1、2、1、2 のように交互になる 201x 201 マトリックスを作成するにはどうすればよいですか。乱数発生器やforループを使ってみたり、findコマンドを使おうと考えています。マトリックスを生成しようとしていますが、エラー メッセージが表示されました。

4

3 に答える 3

5

あなたの言いたいことが正しく理解できれば、クロネッカー積 ( kron) がこれを実現する最も簡単な方法です。

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

最初のコマンドは、要件に従って 202x202 マトリックスを作成し、2 番目のコマンドは、201x201 サイズ仕様に準拠するために 1 行と 1 列を切り取ります。

于 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 に答える