-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

虽然我不明白这个问题的重点,但有很多选择,想到奇怪的选择很有趣:-)

  • 逐元素乘以旋​​转矩阵: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 回答
4

添加到Luis 的答案中,一种滥用图像处理工具箱的方法:

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

我敢打赌,高斯不会喜欢这样的……

您也可以使用线性索引

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