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