-6

真ん中に数字の 1 がある 5x5 マトリックスを作成する必要があります。要素を明示的に入力することはできません。

現在これを使っているのですが、

repmat(eye(5),1)

与える

 1     0     0     0     0
 0     1     0     0     0
 0     0     1     0     0
 0     0     0     1     0
 0     0     0     0     1

真ん中にないものを取り除くにはどうすればよいですか?

4

3 に答える 3

6

さらに別のライナー:

padarray(1,[2 2])
于 2013-09-22T07:22:01.260 に答える
4

画像処理ツールボックスを悪用する方法をLuis's answerに追加します。

>> fspecial('gauss',[5 5], eps)

ガウスはそれを好まなかったに違いない...

線形インデックスも使用できます

>> A = reshape( 1:25, [5 5] ) == 13;
于 2013-09-22T05:51:46.463 に答える
4

この質問の要点はわかりませんが、多くのオプションがあり、奇妙なものを考えるのは楽しいです:-)

  • 回転した行列を要素単位で乗算します。A = eye(5); A = A.*rot90(A)
  • 反転した行列を要素単位で乗算します。A = eye(5); A = A.*flipud(A)
  • A = A + flipud(A); A = A==max(A(:))
  • A = zeros(5); ind = ceil(numel(A)/2); A(ind) = ~A(ind)
  • A = magic(5); A = A==sum(A(:,1))/size(A,1)
于 2013-09-22T03:07:20.497 に答える